製品/カートのシナリオではsimple_form
を設定しようとしていますが、一般的なシナリオとは少し異なります。私のディスプレイは、利用可能なすべての製品をリストし、それぞれに数量を入力する必要があります。保存すると、cart_itemsには、数量が指定されている商品についてのみ、cart_id
,product_id
、およびqty
を保存する必要があります。Railsシンプルフォームアソシエーションすべての可能なオブジェクトのアブノーマル
class Cart < ApplicationRecord
has_many :cart_items
has_many :products, through: :cart_items
accepts_nested_attributes_for :cart_items
end
カートのアイテム:
class CartItem < ApplicationRecord
belongs_to :cart
belongs_to :product
end
製品:
class Products < ApplicationRecord
has_many :cart_items
has_many :carts, through: :cart_items
end
それは空白ですかゼロならば、それは
cart_items
カートに追加すべきではありません
私のような私のフォームの表示を持ってしようとしている: [ x ] (Qty) Product Name [ x ] (Qty) Product Name [ x ] (Qty) Product Name [ x ] (Qty) Product Name
私はf.association :cart_items, collection: Products.all()
を使用して数量のための余分なフィールドを取得するかどうかはわかりません、と私はこの試みた:
<%= f.simple_fields_for :cart_items do |fa| %>
<%= fa.association :product, as: :select %>
<%= fa.input :qty %>
<% end %>
しかし、それを既存の関連付けを表示するだけでなく、選択したリストに商品を表示するのに対して、すべての商品をリストし、関連する数量を表示したいと考えています。
私が見落としているような素晴らしい "Rails-y"の方法がありますか、コントローラとビューで手動で操作する必要がありますか?私はRails 5を使用しています。
ありがとうございました! (私がグーグルで答えを見つけたので、ここで前の質問を削除しました) – Ryan