ここで紛らわしい問題があります。has_one 関係を持つ 2 つのモデルがあります。fields_for を使用して子インスタンスを作成するフォームがあります。ただし、子モデルから親にアクセスしようとすると、nil しか取得されません。
以下の問題の簡潔で簡単な例を提供しようとしました:
class Parent
has_one :child
accepts_nested_attributes_for :child
attr_accessible :child_attributes
end
class Child
belongs_to :parent
validate :parent_is_called_mum
def parent_is_called_mum
parent.name.equals?("mum")
end
end
問題は、parent.name.equals?("mum")
がエラーを返すことです:
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.name
関係が nil として返されるのはなぜですか?