我想了解一下聰明的方式做到這一點...Rails的方法爲嵌套資源
我有當傳遞一個對象作爲參數,返回值的方法,如:
我想使用完全相同的方法爲嵌套資源通過jQuery/AJAX調用,像這樣:
.load(「/位置/ 8/average_rainfall」)
我理解如何界定路線,但我該如何告訴我的方法d'查找'/位置/ 8並使用它作爲參數而不是@location預期?
謝謝!
我想了解一下聰明的方式做到這一點...Rails的方法爲嵌套資源
我有當傳遞一個對象作爲參數,返回值的方法,如:
我想使用完全相同的方法爲嵌套資源通過jQuery/AJAX調用,像這樣:
.load(「/位置/ 8/average_rainfall」)
我理解如何界定路線,但我該如何告訴我的方法d'查找'/位置/ 8並使用它作爲參數而不是@location預期?
謝謝!
,我傳遞的網址爲JavaScript生成視圖,類似這樣的東西的時候:
var ajaxWidget = new AjaxWidget('<%= average_rainfall(@location) %>');
這對我的作品,因爲我並不需要通過周圍的URL堆。我只是將基礎URL傳遞給對象,然後根據需要在JavaScript中追加操作名稱以完成我的Ajax調用。這個問題是我不能讓JavaScript完全不顯眼,所以我想看到更好的答案。
不確定你的確切情況是什麼,但一個選擇是使用數據前綴屬性(html5)。然後你可以從javascript中獲取URL。
因此,如果在一個div:
<div data-rainfall_path="<%= average_rainfall_path(@location) -%>"></div>
然後,只需用jQuery抓住它,讓您的Ajax請求。
這是我會做的聰明的方式。
看起來好像你正在試圖使用視圖助手和控制器邏輯模型將是理想的。你應該堅持的average_rainfall方法在你的選址模型,然後使用該視圖像這樣:
<%= @location.average_rainfall %>
然後在您的位置控制器通過從JavaScript的調用/locations/1/avg_rainfall
使用它。
def avg_rainfall
@location = Location.find(params[:id])
render :json => { :avg_rainfall => @location.average_rainfall }
end
你只是打開了我的思緒。我現在明白如何將胖模型/瘦身控制器付諸實踐。謝謝!! – Blastula 2010-06-08 02:27:17
需要更聰明! – 2010-06-08 01:59:39