レール 4 を使用しています。Blends、Addons、AddonPairings の 3 つのモデルがあります。ユーザーがブレンドを作成し、
Blend
have_many :addon_pairings
have_many :addons, through: :addon_pairings
Addon
have_many :addon_pairings
have_many :blends, through: :addon_pairings
AddonPairing
belong_to :blend
belong_to :addon
私のアドオンはすべてデータベースで事前に作成されており、ユーザーはブレンドにアタッチしたいだけ選択できます。
私new.html.erb
のブレンドのための私の中で
<%= form_for [current_user, @blend] do |f| %>
<div class="form-group">
<%= f.label :addons, "Add some addons to your blend" %>
<%= f.collection_check_boxes :addon_ids, Addon.all, :id, :name %>
</div>
<div class="form-group">
<%= f.submit class: "btn btn-lg btn-primary" %>
</div>
<% end %>
私のブレンドコントローラー
def create
@user = User.find(params[:user_id])
@blend = @user.blends.build(blend_params)
if @blend.save
redirect_to @user, notice: "Your blend has been created."
else
flash.now[:notice] = "Something went wrong. Please check the errors below."
render 'new'
end
end
private
def blend_params
params.require(:blend).permit(:name, :addon_ids)
end
addon_pairings
コントローラーに、ブレンドを選択したアドオンに接続するレコードをテーブルに作成させるにはどうすればよいですか? ありがとう。