我想了解一下聪明的方式做到这一点...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