rails-jquery-autocomplete搜索school_name但保存school_id

时间:2015-04-15 14:41:39

标签: jquery ruby-on-rails autocomplete

我有一个学生属于学校的应用程序。我正在尝试创建注册表单,以便他们开始键入他们学校的名称,并从我的学校数据库中自动完成他们的学校。

我的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' %>

1 个答案:

答案 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>