我的要求是使用我的rails应用程序在我的文本框中实现自动完成 我已经下载了jquery auto complete插件。请帮我解决一下如何实现它。
我的控制器代码:
def new
@release = Release.new
@ic_ids = params[:ic_ids] ? params[:ic_ids] : []
**@testers = User.find_by_sql("select * from users where id in(select user_id from user_role_assignments where role_id in (select id from roles where name like 'Tester')) order by name").paginate(:page=>params[:page],:per_page=>30)**
if params[:project_id]
@release.project = Project.find(params[:project_id])
end
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @release }
end
end
我想为 @testers
创建自动完成功能我的观看代码:
%td.grid.full_panels
-table_panel "Assign Testers" do
%table
%th Name
-puts "testers=#{@testers}"
= form.label :tester_tokens, "Testers"
**= form.text_field :tester_tokens**
谢谢, 拉姆亚。
答案 0 :(得分:1)
当你实现自动完成时,有两种方法可以实现它。
对于第一种方法,有一个非常酷的jquery插件叫jsonSuggest 而且它很容易实现。 你需要一个(id,text)对中的json对象:
var myData = [{ id : "someId" , text : "someText"} , ... ]
然后调用以下代码:
$("#myInput").jsonSuggest({ data : myData , onSelect: function(item){ /* callback code */} })
这甚至可以适用于数千个物体。它将为多个ajax调用服务器提供更好的性能。 如果您更喜欢使用jquery-ui插件,请查看the default example
另一种方法(多个ajax请求)非常相似,但我不认为jsonsuggest支持它。它由jquery-ui插件支持。 对于这种情况,您应该查看the remote example