2

搜索了一段时间,常见的解决方案是在布局标题中插入 <%= csrf_meta_tags %> 。但是,这没有什么区别。安装 jquery-rails 也无济于事

Rails 3.1.0 Ruby 1.9.2 Mongoid 2.2.0

来到 3.1 之后的另一个奇怪的事情是,当我通过 rake 路由检查路由时,有一些 url 助手未指定的 url,例如 GET、PUT 和 DELETE 具有相同的 url,但助手定义的 url 只能到达第一个 cat。

edit_message GET /:permalink/messages/:id/edit(.:format){:action=>"edit", :controller=>"messages"}

message GET /:permalink/messages/:id(.:format){:action=>"show", :controller=>"messages"}

         PUT    /:permalink/messages/:id(.:format)  {:action=>"update", :controller=>"messages"}

         DELETE /:permalink/messages/:id(.:format) {:action=>"destroy", :controller=>"messages"}
4

1 回答 1

1

问题的前半部分通过向每个 ajax 请求添加令牌来解决。因为从 Rails 3.0.4 开始(如果我记得的话),如果您将protect_from_forgery 放在应用程序控制器中,Rails 要求每个 ajax 请求都带有真实性令牌。

于 2011-11-17T04:11:28.630 回答