我不太了解 Rails 中的请求是如何处理的,在我的 Controller 中,我有这样的东西:
def method_to_handle_request
# do stuff
end
然后在 View 中我有这个 JavaScript:
$.post("/", {method_to_handle_request: "value"}, function(data) {
// do something with data
});
这是错误的:JavaScript 中的 data
最终只是页面。因此,我的问题是:如何处理 Rails 中的请求?我一直在阅读“使用 Rails 进行敏捷 Web 开发”,那里的部分对我来说意义不大。
谢谢
最佳答案
Rails 使用配置的路由指向适当的 Controller 操作。您必须在 config/routes.rb 文件中指定一个路由,以通过所需的操作发送您的请求。在您的 Controller 中,您已经定义了 method_to_handle_request。您必须确保为此定义了一条路线。在 routes.rb 文件中有很多方法可以做到这一点,这些在 this guide 中有详细记录。 .
然后在您的 method_to_handle_request 中,您应该将输出呈现/格式化为 JSON 或 XML 或您希望 View 使用的任何内容。如果你不这样做,你最终只会得到平面模板化的 HTML。这是一个 good resource用于渲染 View ,其中有一个特别是关于 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 调用它时,您将在处理程序中获得 JSON 化数据。
哎呀,我希望这就是你要问的......
关于ruby-on-rails - rails 发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7054174/