当我想创建如下所示的新购买时,我想替换名称和价格输入。
<%= simple_form_for([@order, @purchase]) do |f| %>
<%= f.error_notification %>
<%= f.input :name %>
<%= f.input :quantity %>
<%= f.input :price %>
<%= f.button :submit %>
<% end %>
对于名称输入,我希望有一个集合来保存所选产品的ID (来自产品表)。
至于价格输入,我想显示上面所选产品的价格,将价格保存到购买表中。
### #models
class Order < ActiveRecord::Base
has_many :purchases, dependent: :destroy
has_many :products
end
class Purchase < ActiveRecord::Base
belongs_to :order
end
class Product < ActiveRecord::Base
has_many :orders
end
关系和将它们编码成表格有时会使我感到困惑。
我认为模型应该按如下方式设置:
class Order < ActiveRecord::Base
has_many :purchases, dependent: :destroy
has_many :products, :through => :purchases
end
class Purchase < ActiveRecord::Base
belongs_to :order
belongs_to :product
end
class Product < ActiveRecord::Base
has_many :purchases
has_many :orders, :through => :purchases
end
然后我会在购买时创建product_id列。如果这是正确的,我将如何创建收集代码并在表单中打印所选项目(在集合中)的价格?
编写关系代码是我遇到困难的地方。
我还想使用rails-select2
gem。