js-routes 默认 url 选项设置但仍然抛出 404
js-routes default url options set but still throwing 404
我在 rails 项目中使用 js-routes 作为我的 ruby 的一部分,我正在尝试根据 github page. I 实现默认的 url 选项已经在我的 configu/initializers 文件夹中创建了 "jsroutes.rb" 文件,但是,当我从我添加的 rails routes.rb 文件中删除 :format => false 以获取 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。这有错吗?
吐出的错误是与缺少格式相关的一般 rails 404,例如:
ActionController::RoutingError (No route matches [POST] "/purchases(.:format)")
下面是将触发此事件的 js-routes 用法示例;
window.location.href=Routes.purchases_path
我也一直在通过 "rake tmp:cache:clear" 刷新缓存以确保每次启动服务器时都会重新生成 js-routes 文件。
我在这里错过了什么?
所以这是一个有趣的错误。这是因为即使我将 URL 选项和内容类型设置为 'application/json',我还是将对象传递给了 AJAX 调用。
一旦我将 AJAX 调用的数据组件更改为序列化为 JSON 的对象,调用就会成功。
我错误地假设将内容类型和对象传递给 AJAX 调用会自动将该对象序列化为 JSON。
我在 rails 项目中使用 js-routes 作为我的 ruby 的一部分,我正在尝试根据 github page. I 实现默认的 url 选项已经在我的 configu/initializers 文件夹中创建了 "jsroutes.rb" 文件,但是,当我从我添加的 rails routes.rb 文件中删除 :format => false 以获取 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。这有错吗?
吐出的错误是与缺少格式相关的一般 rails 404,例如:
ActionController::RoutingError (No route matches [POST] "/purchases(.:format)")
下面是将触发此事件的 js-routes 用法示例;
window.location.href=Routes.purchases_path
我也一直在通过 "rake tmp:cache:clear" 刷新缓存以确保每次启动服务器时都会重新生成 js-routes 文件。
我在这里错过了什么?
所以这是一个有趣的错误。这是因为即使我将 URL 选项和内容类型设置为 'application/json',我还是将对象传递给了 AJAX 调用。
一旦我将 AJAX 调用的数据组件更改为序列化为 JSON 的对象,调用就会成功。
我错误地假设将内容类型和对象传递给 AJAX 调用会自动将该对象序列化为 JSON。