Js-routes设置了默认的url选项,但仍然抛出404



我正在使用js-routes作为我的ruby on rails项目的一部分,我正试图按照github页面实现默认的url选项。我已经创建了"jsroutes"。然而,当我从我的rails路由中删除:format => false时。我为了让js-routes工作而添加的这个文件,我又开始收到404的错误。

我已经尝试了以下内容,并确认它们正在通过服务器启动的put语句加载:

JsRoutes.setup do |config|
  default_url_options = {format: :json}
end

JsRoutes.setup do |config|
  default_url_options = {:format => 'json'}
end

和其他一些变量,它们的结果都是一样的。

我的理解是,如果我设置了这个选项,任何通过js-routes发出的请求都应该自动添加JSON格式。这有错吗?

抛出的错误是一般的rails 404与缺少格式相关的错误,例如:

ActionController::RoutingError (No route matches [POST] "/purchases(.:format)")
下面是js-routes触发此命令的一个示例:
window.location.href=Routes.purchases_path

我也一直在通过"rake tmp:cache:clear"刷新缓存,以确保每次启动服务器时都会重新生成js-routes文件。

我在这里错过了什么?

这是一个有趣的bug。这是因为即使我设置了URL选项,并且内容类型为'application/json',我也将对象传递给AJAX调用。

只要我将AJAX调用的数据组件更改为序列化为JSON的对象,调用就会成功。

我错误地假设将内容类型和对象传递给AJAX调用将自动将对象序列化为JSON。

最新更新