我的要求是在我的rails應用程序中實現自動完成功能。我需要將我的控制器代碼中的@testers轉換爲json格式。在rails中將數據轉換爲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}
我收到未定義的數據。
請幫我看看這裏。
謝謝, Ramya。如果你不想提取所有數據only
和except
可供選擇
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
:
大衛你好,非常感謝您抽出時間來回答我。在我的情況下,@testers已經從不同的表格中提取出一個sql query.so請幫助我如何以上述格式使用它。還幫助如何在.js文件中使用這個? – ramya 2011-12-28 09:57:27
也請讓我知道在哪裏可以傳遞「q」參數 – ramya 2011-12-28 10:11:33
您還可以渲染任何其他數據,只需使用應該使用json呈現的任何其他對象數組來回報@objects。如果你只是簡單地提取這些東西,而沒有可能過濾'q'不需要! – davidb 2011-12-28 13:59:11