我試圖在我的rails應用程序中實現自動完成。我試圖通過jquery的源碼傳遞ruby參數。這是我想要做的。在jquery auto中傳遞參數完成
$("#text").autocomplete({
appendTo: "#searchwrapper1",
source: h_url+"product_details/menu_search_auto/" + <%= "'#{params[:deptid]}'" %> ,
open:function() {
$(".ui-autocomplete").mCustomScrollbar1({
set_width : false,
set_height : false,
horizontalScroll : false,
scrollInertia : 550,
scrollEasing : "easeOutCirc",
mouseWheel : "auto",
autoDraggerLength : true,
scrollButtons : {
enable : false,
scrollType : "continuous",
scrollSpeed : 20,
scrollAmount : 40
},
}
這裏是我的route.rb文件
match "/product_details/menu_search_auto/:deptid"=>'product_details#menu_search_auto'
和控制器的部分是:
def menu_search_auto
list=[]
if(params[:deptid].to_s == 'all')
b1=test4.where("name LIKE ?","#{params[:term]}%")
else
case params[:deptid].to_i
when 1
b1=test1.where("name LIKE ?","#{params[:term]}%")
when 2
b1=test2.where("name LIKE ?","#{params[:term]}%")
when 3
b1=test3.where("name LIKE ?","#{params[:term]}%")
else
end
end
b1.each do |b1|
list << {"label"=>b1.name, "value"=>b1.name, "id"=>b1.id}
end
respond_to do |format|
format.json{render :json=>list.to_json, :layout=>false}
end
end
但我既不是可以傳遞參數,也沒有我得到任何錯誤。
請問我要去哪裏錯了?
也許你追加如前所述一些代碼(例如,product_details_controller#menu_search_auto和這個動作在config/routes.rb中的路由),所以我們可以看到更多。 另一個提示:添加服務器日誌(請求和響應),以便我們可以看到傳遞的內容以及爲什麼 – 2013-04-25 12:12:14
@erndenson我編輯過 – user2218532 2013-04-25 12:28:20
控制器和路由似乎沒問題 我認爲這個參數沒有通過,因爲你的js中嵌入的ruby(erb)有問題 也許它是'更好的辦法是改變那裏的單引號和雙引號,並檢查參數是否沒有設置。 你可以<%=將某個參數%>放在你的js的某個地方,看看它是否被解釋。 js是否具有.erb擴展名? – 2013-04-25 12:35:09