【问题标题】:Rails link_to w/ path AND url_optionsRails link_to w/ path AND url_options
【发布时间】:2011-03-17 17:42:53
【问题描述】:

如何为 Rails 的 link_to 方法设置路径 :path_only => false?

我们的网站有很多由 Rails 制作的超链接,如下所示:

<% link_to "anchor text", "/path/" %> 产生<a href="/path/">anchor text</a>

我的任务是用绝对 url 替换链接中的相对 url。自然地,我想到设置:only_path => false,但是当我已经提供路径而不是url_options时,我不知道该怎么做。

是的,我可以指定其他 url_options(控制器、操作、id),但是对于我正在工作的规模,使用路径比查找 id、操作和控制器要简单得多。

使用 Rails 2.3.5

【问题讨论】:

    标签: ruby-on-rails path link-to


    【解决方案1】:

    我建议用命名的路由辅助函数替换您的硬编码路径。如果之前的程序员使用path_path 而不是"/path/",您将能够用_url 替换_path 并完成它。如果您找到一种方法来强制您的所有链接都是绝对的而不是相对的,那么下一个需要更改某些内容的人将与您现在在同一条船上。即使替换路径的开销相对较高,这也是正确的方法。

    【讨论】:

    • 你能详细说明你的答案或提供一个例子吗?我不精通命名路由辅助函数。
    • 本指南适用于 rails 3,但创建和使用命名路由的想法也存在于 rails 2.3.x 中(您无需指定正在使用的版本)。 guides.rubyonrails.org/routing.html 基本上,路由系统会生成一些方法(运行rake routes 以查看您的应用程序的列表)。这些看起来像useredit_usernew_user 等。您可以将_path_url 附加到它们中的任何一个,以在任何视图或控制器中获取相对路径或绝对URL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多