我的 Rails 2.3 应用程序中有以下数据模型
class PortraitSubject
has_many :portraits
has_one :primary_portrait, :through => :portraits, :source => :asset, :conditions => ['portraits.primary = ?', true]
has_many :supplementary_portraits, :through => :portraits, :source => :asset, :conditions => ['portraits.primary = ?', false]
...
end
class Portrait
belongs_to :portrait_subject
belongs_to :asset
...
end
我想使用 Rails 构建关联的代理模型,但尝试构建primary_portrait
失败并出现异常。IE
# This works
subject = PortraitSubject.new
subject.supplementary_portraits.build
subject.save
# This doesn't
subject = PortraitSubject.new
subject.build_primary_portrait
# => NoMethodError: undefined method `build_primary_portrait' for #<PortraitSubject:0x007ff16fe38948>
我不确定我做错了什么。浏览 Rails 指南,看起来这应该可以通过has_one
关系实现。任何帮助将不胜感激。