我正在使用 Rails 6。我有以下模型……</p>
class Parent < ActiveRecord::Base
belongs_to :group, foreign_key: :special_id
…
has_one :user, through: :group
class Child < Parent
…
validate :verification, on: :create
…
def verification
print "\n\n\nin verification: group.user #{group.user} user: #{user}\n"
errors.add(:user, 'not verified') unless user.identity_verified?
end
上面的 RSpec 测试中打印的内容是
group.user #<User:0x00007f7f7f5c6e20> user:
这意味着“group.user”返回一个对象,但“user”返回 nil,即使我在 has_one-through 关系中定义了“user”。has_one-through 不应该是别名吗?为什么它返回的结果与访问关系的长形式不同?