我有一个学生属于学校的应用程序。我正在尝试创建注册表单,以便他们开始键入他们学校的名称,并从我的学校数据库中自动完成他们的学校。
我的rails-jquery-autocomplete gem运行良好,但是当用户点击提交时,它似乎无法保存学校ID。
正在发送的参数是:
{"utf8"=>"✓",
"user"=>{"first_name"=>"test",
"email"=>"test@test.com",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]",
"birthday(3i)"=>"15",
"birthday(2i)"=>"4",
"birthday(1i)"=>"1990",
"school_id"=>"Chiswick Community School",
"commit"=>"SIGN UP"}
因为你可以看到school_id正在填充学校名称,而不是id。
我对表单对象的代码是:
<div class="form-object">
<%= f.autocomplete_field :school_id, autocomplete_school_name_users_path, placeholder: 'school/college' %>
</div>
如何让这个向用户显示学校的名称,但只保存school_id?
我已经看了好几年了,怎么发现有人提到在autocomplete_field下使用hidden_field标签,但是我已经尝试了这个并且似乎无法让它工作,所以我甚至不知道它是否正确方法
(我试过这样:<%= f.hidden_field :school_id, id: 'school_id' %>
)
答案 0 :(得分:2)
根据gem docs
使用id_element
选项将使用所选对象的ID更新目标字段。
<div class="form-object">
<%= f.autocomplete_field :school_name,
autocomplete_school_name_users_path,
placeholder: 'school/college',
id_element: '#school_id' # can be any jQuery selector.
%>
<%= f.hidden_field :school_id, id: 'school_id' %>
</div>