gpt4 book ai didi

ruby - 导轨 : assign multiple params via form_for check_box for HABTM relationship

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:28 26 4
gpt4 key购买 nike

我是一名 Rails 新手,正在从事我的第一个项目。

我使用 has_and_belongs_to_many 关系链接了两个模型:Wine 和 Shop。为了简单起见,一种酒可以在不同的商店出售,而一个特定的商店可以出售多种不同的酒。以下是模型:

class Shop < ActiveRecord::Base
has_and_belongs_to_many :wines
end

class Wine < ActiveRecord::Base
has_and_belongs_to_many :shops
end

我的目标是创建一个表单来创建 Wine 实例,包括可以购买 Wine 的商店。这是我的 wines_controller :

  def new
@wine = wine.new
@shops = Shop.all

respond_to do |format|
format.html # new.html.erb
format.json { render json: @wine }
end
end

def create
@wine = Wine.new(params[:wine])
params[:shops].each do |id|
@wine.shops << Shop.find(id)
end
end

这是我在新 View 中呈现的 _form View :

<%  @shops.each do |t|  %>
<%= f.label t.name %>
<%= f.check_box :shops, t.id %>
<% end %>

我已经尝试了很多事情并为此花费了数小时,但找不到解决方案。除其他事项外,我还查看了这些问题,但无法使其正常工作:

最后我得到了一个

undefined method `merge' for 3:Fixnum

如果您需要任何其他详细信息来处理此问题,或者如果我已经遗漏了与此相关的问题,请告诉我。

提前致谢

最佳答案

试试这个

<%  @shops.each do |t|  %>
<%= f.label t.name %>
<%= check_box_tag "shops[]", t.id %>
<% end %>

和你的 Controller 代码

def create
@wine = Wine.new(params[:wine])
@shops = Shop.find params[:shops]
@wine.shops = @shops
..

关于ruby - 导轨 : assign multiple params via form_for check_box for HABTM relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com