2

以下のように新規購入を作成したい場合、名前と価格の入力を差し替えたいと思います。

<%= 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ジェムも使いたいです。

4

0 に答える 0