以下のように新規購入を作成したい場合、名前と価格の入力を差し替えたいと思います。
<%= 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
ジェムも使いたいです。