在Rails 5中,可以通过使用strong_params来在fields_for中传递collection_select的值。下面是一个示例:
- 首先,在控制器中定义strong_params方法,以允许传递的参数:def strong_params
params.require(:model_name).permit(:attribute_name, associated_model_attributes: [:id, :name])
end其中,model_name是你的主模型名称,attribute_name是你要传递的属性名称,associated_model是你的关联模型名称。
- 在视图中,使用fields_for和collection_select来创建表单字段:<%= form_for @model_name do |f| %>
<%= f.fields_for :associated_model_attributes do |ff| %>
<%= ff.collection_select :id, AssociatedModel.all, :id, :name %>
<% end %>
<%= f.submit %>
<% end %>其中,model_name是你的主模型名称,associated_model是你的关联模型名称。
- 在控制器的create或update方法中,使用strong_params方法来接收传递的参数:def create
@model_name = ModelName.new(strong_params)
if @model_name.save
# 保存成功的逻辑
else
# 保存失败的逻辑
end
end其中,ModelName是你的主模型名称。
这样,你就可以通过strong_params方法在fields_for中传递collection_select的值了。
关于Rails的更多信息,你可以参考腾讯云的Rails产品介绍页面:Rails产品介绍