Rails автоматически загружает отношение has_one - PullRequest
0 голосов
/ 21 мая 2018
  • Ruby версия 2.4.4
  • Rails версия 5.1.4
  • Разработка версии 4.4.3

У меня возникла странная проблема вмое заявление.Короче говоря, всякий раз, когда я загружаю запись пользователя, она автоматически связывается с записью местоположения.

Модель пользователя:

class User < ApplicationRecord
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

  has_one :location, as: :owner
end

Модель местоположения:

class Location < ApplicationRecord
  belongs_to :owner, polymorphic: true, required: false
end

Вrails console, если я ввожу просто User.last, я вижу два запроса:

User Load (1.5ms)  SELECT  "users".* FROM "users" WHERE "users"."deleted_at" IS NULL ORDER BY "users"."id" DESC LIMIT $1  [["LIMIT", 1]]

Сразу же следует

Location Load (6.8ms)  SELECT  "locations".* FROM "locations" WHERE "locations"."owner_id" = $1 AND "locations"."owner_type" = $2 LIMIT $3  [["owner_id", 9], ["owner_type", "User"], ["LIMIT", 1]]

Если я закомментирую строку devise, это больше не происходит,Любое объяснение того, что может вызвать это?Ни для одной модели не определена область по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...