【问题标题】:A tag's url in railsrails中标签的url
【发布时间】:2014-11-11 04:35:55
【问题描述】:

我的 Rails 应用程序中有一个锚标记..

<a href='app/users/<%= current_user.id %>/personal_settings'> <i class='icon-gear'></i> Personal Settings </a>

事情是这会在我的许多 html 页面中呈现。所以每当我点击这个&lt;a&gt;标签时,URL就像parent_url + app/users/:id/personal_settings 有什么办法可以防止这种情况。每当我点击这个标签时,url 应该只是app/users/:id/personal_settings。不应该出现父标签。

【问题讨论】:

  • 你能运行rake routes 并向我们展示这条特定路线的输出吗?
  • 永远不要使用硬编码的网址。始终使用路由助手。 Mohamed Yakout 提到的答案是正确的。
  • @jbmyid 作为记录,我没有使用硬编码的 URL。如果您不想使用link_to 辅助方法,我的解决方案也是一个非常可行的解决方案。
  • @richsinn 因此,即使您不想使用 link_to 方法,您也可以使用路由助手,例如。 &lt;a href='&lt;%= users_personal_settings_path(current_user) %&gt;'&gt; link&lt;/a&gt;
  • @jbmyid 您显然没有阅读我的答案。我确实使用了路由助手(也称为命名路由)。事实上,Mohamed Yakout 在我第一次发布命名路线的用法后复制了我的答案。 Mohamed 的原始答案使用了硬编码的 URL,我建议使用命名路由(您仍然可以使用硬编码的 URL 看到他的原始答案)。甚至名为 route users_personal_settings_path 的示例也是我自己编造的示例,Mohamed 在他的回答中复制了该示例! Mohamed 添加的唯一额外内容是使用了 link_to 助手。

标签: jquery html ruby-on-rails ruby


【解决方案1】:

您需要将/ 放在您的网址之前,以便相对网址到根网址,如下代码:

<a href='/app/users/<%= current_user.id %>/personal_settings'> <i class='icon-gear'></i> Personal Settings </a>

或者你可以使用绝对网址,如下所示:

<a href='https://www.localhost:3000/app/users/<%= current_user.id %>/personal_settings'> <i class='icon-gear'></i> Personal Settings </a>

阅读 absolute, and relative 网址的 href。


您可以使用辅助方法link_to,如下所示:

<%= link_to(users_personal_settings(current_user)) do %>
  <i class='icon-gear'></i> "Personal Settings"
<% end %>

【讨论】:

    【解决方案2】:

    在您的锚标记中,我建议使用命名路由作为锚标记 href 中的 URL(提示:运行 rake routes 以查找您的命名路由,或者您可以在routes.rb 文件中设置自己的named route)并将current_user.id 作为参数传递给命名路由。

    例如,如果您的命名路线是users_personal_settings,那么我将如何设置您的&lt;a&gt; 标签(注意_path extension to the named route):

    <a href='<%= users_personal_settings_path(current_user.id) %>'> 
      <i class='icon-gear'></i> Personal Settings 
    </a>
    

    【讨论】:

      猜你喜欢
      • 2011-07-25
      • 1970-01-01
      • 2015-04-02
      • 2017-04-27
      • 2014-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多