无法选择 select_tag
Not able to get pick with select_tag
实际上我正在从类别中获取我的类别模型值以获取输入.....
category_id 在产品模型中充当外键
我正在接受这样的输入
<%= select_tag 'category', options_for_select(Category.pluck(:name, :id)), class: 'form-control', id: 'sel1' %>
并在 Product_controller 中传递类别 ID 像这样创建操作
def create
@product = Product.new(product_params)
@product.user = current_user
private
def product_params
params.require(:product).permit(:productname, :productprice, :productstatus,:image ,:category )
end
但是当我创建我的产品时发生错误,类别应该存在。
我认为 params[:category] 没有通过 category_id
解决问题的两种方法:
第一:实际配置
def create
@product = Product.new(product_params)
@product.user = current_user
@product.category_id = params[:category]
@product.save
end
private
def product_params
params.require(:product).permit(:productname, :productprice, :productstatus, :image)
end
第二步:将 select 标签重命名为 'product[category_id]'
def create
@product = Product.new(product_params)
@product.user = current_user
@product.save
end
private
def product_params
params.require(:product).permit(:productname, :productprice, :productstatus, :image, :category_id)
end
控制器代码可能如下所示:
def create
@product = Product.new(product_params)
@product.user = current_user
@product.save
end
private
def product_params
params.require(:product).permit(:productname, :productprice, :productstatus, :image, :category_id)
end
查看代码如下:
理想情况下,您的 category_id
应该进入 params[:product]
你的参数应该看起来像 {product: {category_id: 1, other_attr: 'abc'}}
您必须使用 form_for
或 form_with
,因此请使用您的 formbuilder 对象。
<%= form_with(model: @product) do |f| %>
<%= f.collection_select :category_id, Category.all, :id, :name, class: 'form-control', id: 'sel1' %>
<% end %>
我用过 collection_select 你甚至可以使用其他 select 助手。
另一种解决方法是将名称属性用作 product[category_id]
<%= select_tag 'category', options_for_select(Category.pluck(:name, :id)), name: 'product[category_id]', class: 'form-control', id: 'sel1' %>
实际上我正在从类别中获取我的类别模型值以获取输入..... category_id 在产品模型中充当外键 我正在接受这样的输入
<%= select_tag 'category', options_for_select(Category.pluck(:name, :id)), class: 'form-control', id: 'sel1' %>
并在 Product_controller 中传递类别 ID 像这样创建操作
def create
@product = Product.new(product_params)
@product.user = current_user
private
def product_params
params.require(:product).permit(:productname, :productprice, :productstatus,:image ,:category )
end
但是当我创建我的产品时发生错误,类别应该存在。 我认为 params[:category] 没有通过 category_id
解决问题的两种方法:
第一:实际配置
def create
@product = Product.new(product_params)
@product.user = current_user
@product.category_id = params[:category]
@product.save
end
private
def product_params
params.require(:product).permit(:productname, :productprice, :productstatus, :image)
end
第二步:将 select 标签重命名为 'product[category_id]'
def create
@product = Product.new(product_params)
@product.user = current_user
@product.save
end
private
def product_params
params.require(:product).permit(:productname, :productprice, :productstatus, :image, :category_id)
end
控制器代码可能如下所示:
def create
@product = Product.new(product_params)
@product.user = current_user
@product.save
end
private
def product_params
params.require(:product).permit(:productname, :productprice, :productstatus, :image, :category_id)
end
查看代码如下:
理想情况下,您的 category_id
应该进入 params[:product]
你的参数应该看起来像 {product: {category_id: 1, other_attr: 'abc'}}
您必须使用 form_for
或 form_with
,因此请使用您的 formbuilder 对象。
<%= form_with(model: @product) do |f| %>
<%= f.collection_select :category_id, Category.all, :id, :name, class: 'form-control', id: 'sel1' %>
<% end %>
我用过 collection_select 你甚至可以使用其他 select 助手。
另一种解决方法是将名称属性用作 product[category_id]
<%= select_tag 'category', options_for_select(Category.pluck(:name, :id)), name: 'product[category_id]', class: 'form-control', id: 'sel1' %>