【问题标题】:js-routes adding (::format) to urlsjs-routes 将 (::format) 添加到 url
【发布时间】:2016-12-16 08:05:51
【问题描述】:

我有一个简单的 Rails 项目,我一直在使用 reactjs。为了添加一些基本导航,我引入了 js-routes 库,它适用于具有路径参数(例如“localhost:3000/addresses/1”)的 url。

我面临的问题是我正在尝试调用“新”资源方法,并将 (::format) 逐字添加到 url 中,这当然是 localhost:3000/addresses/new(.:format)是无效路径。

我引用了 routes-js 文档中指定的“new_address_path”路径。此 url 的 rake 输出如下:

new_address_path    GET /addresses/new(.:format)    addresses#new

利用上述路径的 HTML sn-p 如下所示:

<a href={Routes.new_address_path}>Create am address</a>

环境:

-Ruby: 2.2.4
-Rails: 4.2.6
-js-routes: 1.2.8

相关路线:

resources :addresses

我在这里缺少什么?它似乎没有正确解释 rails 路由文件。

【问题讨论】:

    标签: javascript ruby-on-rails ruby ruby-on-rails-4 js-routes


    【解决方案1】:

    我不确定我是否收到了您的问题。如果要生成带有格式后缀的 url,可以在 helper 方法中使用 format 选项。例如:

    Routes.new_address_path(format: 'js')
    

    会生成这样的东西:

    /addresses/new.js
    

    【讨论】:

    • 对不起。我的意思是,我的路由使用“资源”的默认 rails 路由类型,它会自动将 (::format) 附加到 URL 的末尾,以便它可以接受不同的格式。在 ERB 文件中工作时,我不必指定格式,rails 会确定它是否是 html/json 等。我希望 js-routes 有相同的行为,我弄错了吗?我可以通过格式,但这似乎是一种浪费。这有帮助吗?
    【解决方案2】:

    对不起,我以为我在这里发布了我的解决方案。

    问题不在于 js-routes,而在于我的 AJAX 调用,我将内容类型设置为 JSON,并且我认为它正在使用内置方法将我的对象转换为 JSON。这不正确,您需要通过 JSON.stringify(obj) 手动将对象转换为 JSON。

    旧的 ajax 调用:

    ....
    url: Routes.feedback_path(),
    dataType: 'json',
    contentType: 'application/json',
    type: 'POST',
    data: obj,
    ....
    

    新的 ajax 调用:

    ....
    url: Routes.feedback_path(),
    dataType: 'json',
    contentType: 'application/json',
    type: 'POST',
    data: JSON.stringify(obj),
    ....
    

    【讨论】:

      【解决方案3】:

      您可能已经找到了解决方案,但您最初的问题js-routes 相关的问题,或者更确切地说是您对它的使用。

      您必须提供括号才能从 js-routes 获得正确的输出。

      原文:Routes.new_address_path

      固定:Routes.new_address_path()

      正如 smefju 发布的那样,您可以在括号中指定格式,但完全不使用它们不是一种选择。

      【讨论】:

        猜你喜欢
        • 2014-05-11
        • 1970-01-01
        • 2011-10-26
        • 2014-05-09
        • 1970-01-01
        • 2020-07-06
        • 2014-02-18
        • 1970-01-01
        • 2020-10-03
        相关资源
        最近更新 更多