我的rails应用程序中有一个锚标记..
<a href='app/users/<%= current_user.id %>/personal_settings'> <i class='icon-gear'></i> Personal Settings </a>
这是在我的许多html页面中呈现的东西。因此,每当我点击此<a>
标记时,其中的网址就像parent_url + app/users/:id/personal_settings
有什么办法可以防止这种情况发生。每当我点击这个标签时,网址应该只是app/users/:id/personal_settings
。不应该有父标签。
答案 0 :(得分:2)
在您的锚标记中,我建议您使用锚点标记中的网址命名路由href
(提示:运行rake routes
找到您的命名路由,或者您可以在routes.rb
文件中设置自己的named route,并将current_user.id
作为参数传递给指定路由。
例如,如果您的指定路线为users_personal_settings
,那么我在此处设置您的<a>
标记(请注意_path
extension to the named route):
<a href='<%= users_personal_settings_path(current_user.id) %>'>
<i class='icon-gear'></i> Personal Settings
</a>
答案 1 :(得分: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 %>