別のモデルとhas_one
関連付けられたモデルがありthrough
ます。
class Publisher
has_many :books
end
class Book
belongs_to :publisher
has_one :author
end
class Author
belongs_to :book
has_one :publisher, :through => :book
end
私の Rails コードではauthor.publisher
、問題なく呼び出すことができるので、すべてがうまく機能します。ただし、私の仕様では (Rspec と FactoryGirl を使用すると、関連付けがうまくいかないようです。私の FactoryGirl の定義は次のとおりです。
Factory.define :author do |a|
a.association :book
end
Factory.define :book do |b|
b.association :publisher
end
Factory.define :publisher
end
(ファクトリのほとんどの属性は省略されています)。
私の仕様では、次のことができます
pub = Factory(:publisher)
book = Factory(:book, :publisher => pub)
author = Factory(:author, :book => book)
author.book # => Returns book
author.book.publisher # => Returns publisher
author.publisher # => nil
では、なぜ私のthrough
関連付けが機能しないのでしょうか。