我不太了解如何在rails中处理请求,在我的控制器中,我有类似的东西:
def method_to_handle_request
# do stuff
end
然后在视图中我有这个JavaScript:
$.post("/", {method_to_handle_request: "value"}, function(data) {
// do something with data
});
这是错误的:JavaScript中的data
最终只是页面。因此,我的问题是:如何处理rails中的请求?我一直在阅读“使用Rails进行敏捷Web开发”,而那里的部分对我来说并没有多大意义。
感谢
答案 0 :(得分:5)
Rails使用已配置的路由指向相应的控制器操作。您必须在config / routes.rb文件中指定路由,以通过所需操作发送请求。在您的控制器中,您已定义method_to_handle_request。您必须确保为此定义路线。在routes.rb文件中有很多方法可以做到这一点,这些方法在this guide中有详细记录。
然后在您的method_to_handle_request中,您应该将输出呈现/格式化为JSON或XML或您希望视图使用的任何内容。如果你不这样做,你最终只会得到平坦的模板化HTML。这是一个good resource,用于渲染视图,特别是有关于JSON的部分。
所以这是我的意思的一个简单例子:
在config / routes.rb
中resources :foos do
member do
post 'do_my_foo'
end
end
在foos_controller.rb
中def do_my_foo
foo = Foo.find(params[:id])
# do some things to poor ole foo
some_cool_data_about_foo = ...
respond_to do |format|
format.json { render :json => some_cool_data_about_foo }
end
end
然后,当您使用ajax调用它时,您将在处理程序中获取JSONified数据。
Geeze,我希望这就是你所要求的......