HRÓ*_*LFR 3 ruby ruby-on-rails http-post
我不太了解如何在rails中处理请求,在我的控制器中,我有这样的事情:
def method_to_handle_request
# do stuff
end
Run Code Online (Sandbox Code Playgroud)
然后在视图中我有这个JavaScript:
$.post("/", {method_to_handle_request: "value"}, function(data) {
// do something with data
});
Run Code Online (Sandbox Code Playgroud)
这是错误的:data在JavaScript中最终只是作为页面.因此,我的问题是:如何处理rails中的请求?我一直在阅读"使用Rails进行敏捷Web开发",而那里的部分对我来说并没有多大意义.谢谢
Rails使用配置的路由指向适当的控制器操作.您必须在config/routes.rb文件中指定路由,以通过所需操作发送请求.在您的控制器中,您已定义method_to_handle_request.您必须确保为此定义路线.在routes.rb文件中有很多方法可以做到这一点,本指南中有很多文档.
然后在您的method_to_handle_request中,您应该将输出呈现/格式化为JSON或XML或您希望视图使用的任何内容.如果你不这样做,你最终只会得到平坦的模板化HTML.这是一个很好的资源,用于渲染具有特定JSON部分的视图.
所以这是我的意思的一个简单示例:
在config/routes.rb中
resources :foos do
member do
post 'do_my_foo'
end
end
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
然后,当您使用ajax调用它时,您将在处理程序中获取JSONified数据.
吉泽,我希望这就是你所要求的......