我正在使用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文件。
我在这里缺少什么?
答案 0 :(得分:0)
所以这是一个有趣的错误。这是因为即使我将URL选项和内容类型设置为' application / json',我也将对象传递给AJAX调用。
一旦我将AJAX调用的数据组件更改为序列化为JSON的对象,调用就会成功。
我错误地认为将内容类型和对象传递给AJAX调用会自动将对象序列化为JSON。