ActiveRecord :: StatementInvalid: PG :: UndefinedTable: ERROR: отсутствует запись предложения FROM для таблицы "location" - PullRequest
0 голосов
/ 01 февраля 2019

Я получаю эту ошибку после обновления до Rails 5.2.2 с 4.2.10.

Я использую activerecord-postgis-adapter , чтобы сделать модели доступными.

Теперь я получаю эту ошибку из-за какого-то плохого sql.

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "location"
LINE 1: ..."locatable_type" = $1 WHERE "users"."id" = $2 AND "location"...
                                                             ^
: SELECT  "users"."id" AS t0_r0, "users"."username" AS t0_r1, "users"."created_at" AS t0_r2, ..., FROM "users" LEFT OUTER JOIN "locations" ON "locations"."locatable_id" = "users"."id" AND "locations"."locatable_type" = $1 WHERE "users"."id" = $2 AND "location"."locatable_type" = $3 LIMIT $4
from /Users/user/.rvm/gems/ruby-2.3.1/gems/activerecord-5.2.2/lib/active_record/connection_adapters/postgresql_adapter.rb:611:in `async_exec_params'
Caused by PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "location"
LINE 1: ..."locatable_type" = $1 WHERE "users"."id" = $2 AND "location"...

Проблема в том, что нет таблицы location, и все, что я делаю, это создаю запись с помощью Location.create(:locatable_type => "User", :locatable_id => id, :point => "POINT(0 0)")

Это похоже на забвение множественного числа названия модели местоположения.

...