是否可以将单个对象关联为多个字段?像这样的东西?
广告模型
class Ad
include Mongoid::Document
field :name
referenced_in :ad_types, :as => :web_spec
referenced_in :ad_types, :as => :print_spec
end
AdType模型
class AdType
include Mongoid::Document
field :shape
field :size
field :medium
references_many :ads
end
然后以这样的形式将每个引用引用为单独的字段。
<%= f.input :web_spec, :collection => AdType.where(:medium => "Web"), :label_method => :shape, :label => "Web" %>
<%= f.input :print_spec, :collection => AdType.where(:medium => "Print"), :label_method => :shape, :label => "Print" %>
我没有运气就给了这样的东西。我可能会采用错误的方式,或者这个功能尚不存在。任何建议都会很明确。
答案 0 :(得分:0)
几个问题。 AdType本身就是一个文件的原因吗?除非您将拥有大量类型,否则它可能更适合作为嵌入式文档。其次,可能更清晰的是拥有单一关联(无论是引用还是嵌入)和广告模型的两个范围。使用你的例子,我会有这样的事情:
class Ad
include Mongoid::Document
field :name
embeds_one :ad_type
scope :web ...
scope :print ...
end
class AdType
include Mongoid::Document
field :shape
field :size
field :medium
embedded_in :ad, :inverse_of => :ad_type
end