我是Rails新手,正在努力使用Jquery Autocomplete gem。我可以使自动完成功能正常工作,但是无法将元素的ID传递到数据库中。无论如何,参数显示自动完成的名称,因此数据库中的ID字段为0。我在控制器中设置了以下操作:
class GroupsController < ApplicationController
autocomplete :nhood, :name
该路线似乎也可以正常工作,因为自动完成功能可以正常运行。错误出现在表单中的某处,我尝试了很多变化,但没有任何效果。目标是将与自动完成的邻域名称相对应的邻域ID传递到“计划”表中。形式如下:
<%= form_for(@plan, :url=> groups_createplan_path) do |f| %>
<div class="field">
<%= f.label :nhood_id %>
<%= f.autocomplete_field :nhood_id, autocomplete_nhood_name_groups_path,
:update_elements => {:id => '#id_element'}, :size=>50 %>
<%= f.submit "Submit" %>
<% end %>
我从
:id_element => '#some_element', such as :id_element => '#nhood_id', or just
:id_element => '#id'
但似乎没有任何效果。我很迷茫,我想我已经密切关注了gem文档,所以我不知道错误在哪里。
https://github.com/crowdint/rails3-jquery-autocomplete
如果有人可以帮助,将不胜感激。如果需要,我很乐意提供更多信息。谢谢
更新:
我还应该注意,firebug显示了响应,其中包括我想要的“ id”:
{“ id”:“ 36”,“ label”:“ Soulard”,“ value”:“ Soulard”}
因此,我的问题实际上就是我如何才能使该“ id”传递给params哈希,而不是“ label”?我不断获得“灵魂”的通过,而不是“ 36”。
最佳答案
我遇到了类似的情况,试图将课程ID链接到课程时间表。对我有用的是在一个隐藏字段中传递ID。
<%= f.label "Course Number" %><br />
<%= f.autocomplete_field :course_number, autocomplete_course_name_department_timetables_path, :update_elements => {:id => "#timetable_course_id"}%>
<%= f.hidden_field :course_id%>
所以可能对您有用
<%= f.label :nhood_id %>
<%= f.autocomplete_field :nhood_name, autocomplete_nhood_name_groups_path, :update_elements => {:id => '#plans_nhood_id'}, :size=>50 %>
<%= f.hidden_field :nhood_id %>
关于jquery - jQuery自动完成 gem -将参数传递到数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8087755/