Я получаю эту ошибку после обновления до 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)")
Это похоже на забвение множественного числа названия модели местоположения.