我的需求是在我的rails应用程序中实现自动完成功能。我需要将下面控制器代码中的@testers转换为json格式。
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)
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @release }
end
end在我的视图代码中,我尝试了以下内容:
%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,:class => 'autocomplete'
:javascript
data = #{testers.to_json} 我对数据的定义不明确。
请帮帮我。
谢谢,拉米亚。
发布于 2011-12-28 17:50:11
要创建json源代码,可以将format.json添加到respond_to循环中,如下所示:
def index
@objects=Model.where("name LIKE ?", "%params[:q]%") || Model.all
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @objects.map(&:attributes) }
end
end如果您不想提取所有数据,可以使用only和except选项。你应该能够在大多数自动补全插件中使用它!
通过添加q数据,您将能够根据给定的模式划分结果。
发布于 2011-12-28 17:52:00
为什么是data =?据我所知,这是无效的javascript。
正确的HAML语法应为:
:javascript
#{testers.to_json}https://stackoverflow.com/questions/8654202
复制相似问题