rails options_for_select更新表格

时间:2019-03-19 18:36:09

标签: ruby-on-rails forms erb

这是我的biblios_helper.rb:

def main_language
    [["français","frenchLit"],["latin","latinLit"],["ancien français","froLit"],["néerlandais","dutchLit"]]
end

添加新书目的表单包含:

<%= f.select(:langue_main) do %>
    <% options_for_select(main_language, selected: params[:biblio] ? params[:biblio][:langue_main] :"") %>
<% end %>

这将导致此html:

<select name="biblio[main_language]" id="biblio_main_language"><option value="frenchLit">français</option>
<option value="latinLit">latin</option>
<option value="froLit">ancien français</option>
<option value="dutchLit">néerlandais</option></select>

那很好。但是,我有相同的代码,可以用来更新书目。

在数据库中,语言是“ froLit”,我希望默认显示在选择菜单中的语言是“ ancienfrançais”。我该怎么办?

2 个答案:

答案 0 :(得分:0)

在编辑表单上,它将自动选择相应的选项作为默认选项,该选项已为此对象保存在数据库中-

<%=f.select :langue_main, options_for_select(main_language) %>

但是,如果您希望像往常一样被默认选择为["ancien français","froLit"],请尝试使用此选项-

<%=f.select :langue_main, options_for_select(main_language, "froLit") %>

答案 1 :(得分:0)

也许只是:

= f.select :langue_main, options_for_select(main_language, params.dig(:biblio, :langue_main))