我有一个名为Quote的父模型。它有一个名为final_quote的属性,并有一个名为QuoteBoms的子模型,它有一个名为quote_final_quote和quantity和total_quote(= quote_final_quote * quantity)的属性
class Quote < ActiveRecord::Base
has_many :quote_boms, dependent: :destroy
accepts_nested_attributes_for :quote_boms, :reject_if => :all_blank, :allow_destroy => true
class QuoteBom < ActiveRecord::Base
belongs_to :quote
has_many :quotes
end
现在在嵌套模型中,我选择带有“belongs_to:quote”关联的引用但是has_many:引号不起作用,因为我只有一个quote_id
列(我想这是问题所在)。我看到我需要将第三个类定义为quotebom_quote_id,但无法弄清楚究竟如何!
任何帮助将不胜感激!
答案 0 :(得分:0)
class Image < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
end
class Profile < ActiveRecord::Base
has_many :images, :as => :imageable
end
class Article < ActiveRecord::Base
has_many :images, :as => :imageable
end
这就是我们制作单个图像模型的方式,它可以通过一个或多个模型访问
请参考这个 Link
答案 1 :(得分:0)
据我所知,您希望创建一个包含Quote和QuoteBom模型的数据库结构,其中Quote有很多QuoteBom,而QuoteBom属于很多行情。
在这种情况下,您需要使用has_and_belongs_to_many association。
这需要添加到您的模型
class Quote < ActiveRecord::Base
has_and_belongs_to_many :quote_boms
end
class QuoteBom < ActiveRecord::Base
has_and_belongs_to_many :quotes
end
...以及以下迁移(假设Quote和QuoteBom已经存在)
class CreateQuotesAndQuoteBoms < ActiveRecord::Migration
def change
create_table :quote_quote_boms, id: false do |t|
t.belongs_to :quote, index: true
t.belongs_to :quote_bom, index: true
end
end
end
通过在模型中使用上述关联,并在数据库中使用此表,rails将自动处理quote和quote_doms之间的关联。因此,您还可以访问quote_dom.quotes,您说您在问题中无法做到这一点。
这是 NOT 多态关联。多态关联允许模型在单个关联中属于多种类型的其他模型。