我在我的形式保存选择框的选项内容,而不是价值
<%= f.fields_for :attached_vehicles do |av| %>
<p>Select make</p>
<%= av.select :make, options_for_select(@makes.collect { |make|[make.make_name, make.id] }), { include_blank: "Select make" }, {} %>
...
<% end %>
此线,使得这个在HTML
<select name="diy[attached_vehicles_attributes][0][make]" id="diy_attached_vehicles_attributes_0_make">
<option value="">Select make</option>
<option value="1">ACURA</option>
<option value="2">ALFA ROMEO</option>
<option value="3">AM GENERAL</option>
<option value="4">AMERICAN IRONHORSE</option>
<option value="5">AMERICAN LAFRANCE</option>
...
</select>
所以现在将保存选项数据库的价值,我需要它来保存选定选项的内容。 另外,我不能只用替换make.make_name
在“options_for_select”,因为我需要值为id,所以我的其他动态选择框根据选定的选项得到正确的选项。
--------------------------------------------- -------------------------------------------------- -------------------------------------编辑
所以,我没有为Dharam建议
...
def diy_params
params[:diy][:attached_vehicles_attributes].each_with_index do |make_id, index|
params[:diy][:attached_vehicles_attributes][index][:make] = Make.find(make_id).make_name
end
params.require(:diy).permit(:title, :summary, :tip, :warning, attached_vehicles_attributes: [:make, :model, :start_year, :end_year], steps_attributes: [:step_content, add_images_to_steps_attributes: [:image]])
end
...
,我不断收到此错误
找不到所有 '身份证' 使:(0,{ “使”=> “12”, “模式”=> “XPEDITOR” ,“start_year”=>“2002”,“end_year”=> “2010”})(搜索到0,但一直在寻找2)
这就是我一直
... Make.find(make_id.first.make).make_name
和多个其他的东西,但没有得到它的工作,我做错了什么?
--------------------------------------------- -------------------------------------------------- ------------------------------------- EDIT2
make_id的值似乎是
(0,{ “使”=> “12”, “模式”=> “XPEDITOR”, “START_YEAR”=> “2002”, “END_YEAR”=> “2010”})
因为它试图找到与它作为身份证。
和参数在控制台看起来像
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Kr4yvJUPCzUagUaW1glt69HEychEz+6QyHpGjKVKQ883rTUl0pZD+9SZSaQujHgM9k7jRt0vP1WTV5fMp8xyJw==", "diy"=>{"attached_vehicles_attributes"=>{"0"=>{"make"=>"12", "model"=>"XPEDITOR", "start_year"=>"2002", "end_year"=>"2010"}}, "title"=>"afaf", "summary"=>"AFSfAS", "tip"=>"FAF", "warning"=>"fdsgfsd", "steps_attributes"=>{"0"=>{"step_content"=>"gsdgsdg"}}}, "commit"=>"Create Diy"}
将内容分配到提交的隐藏字段?或者在提交后按价值查看内容。 –