我正在將舊rails應用升級到3.1。該應用程序非常有用,但我需要更新一些ajax功能。 (如果它有什麼區別,我正在使用jQuery和coffeescript)Rails升級到3.1 - 將ajax處理從「render:update」更改爲respond_to
所有現有的ajax功能都是使用render:updates編寫的。例如
render :update do |page|
page.remove "financial_tran_offset_#{params[:ftof_id]}"
page.replace_html 'details', :partial => 'details', :locals => {:obj => @fire}
end
我認爲這樣做的新的首選方法是使用respond_to?阻止處理js,但我不確定處理這些不同情況的最佳方式。
對於第一種情況(page.remove
),我認爲使用資產管道線,我應該有一個外部js in/app/assets/javascripts /來處理javascript方面(例如page.remove),但我是不知道如何將參數傳遞給js文件。我猜你可以做這樣的事情:
respond_to do |format|
format.js {:render :js => {:ftof => params[:ftof_id]}
end
但我不知道你怎麼可以從js文件中選擇這個。這是正確的方式將信息傳遞給js嗎?還是有另一種方法我應該使用?
對於第二種情況(page.replace_html
),我認爲這已從3.1(根據apidock)已被棄用/刪除。我懷疑這應該是使用應用程序/資產/ JavaScript目錄中的js文件,但不知道如何去渲染部分並將這些信息傳遞給js。
感謝在這方面的任何指針=)
很酷。無論如何用coffeescript來做到這一點,或者你是否僅限於update.js.erb中的直接js? –
如果你真的想要使用CoffeeScript,你可能可以,但動態視圖支持是我看不出來的。 (我個人更喜歡直JS。)用於簡單jQuery單行程序的CoffeeScript有點矯枉過正。 $('#id')。append('content');'到'$('#id')。append'content''。保存一組括號不值得花費。 JQuery非常簡潔且足夠簡單。不妨堅持下去。 – Substantial
非常詳細的答案,謝謝! –