js-routes默认网址选项设置但仍然丢弃404

时间:2016-10-19 04:46:48

标签: ruby-on-rails js-routes

我正在使用js-routes作为我的ruby on rails项目的一部分,我正在尝试按照github page.实现默认的url选项我在配置/初始化程序中创建了“jsroutes.rb”文件但是,当我删除:format =>来自我的rails routes.rb文件的错误,我添加了js-routes工作,我开始再次收到404错过格式。

我尝试过以下操作并确认它们是通过服务器启动时的puts语句加载的:

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

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

以及其他一些变体都会产生相同的结果。

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

错误spat out是与缺少格式相关的一般轨道404,例如:

ActionController::RoutingError (No route matches [POST] "/purchases(.:format)")

将触发此操作的js-routes的示例用法如下;

window.location.href=Routes.purchases_path

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

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

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

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

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