我有一个页面,需要一个链接到一个给定ID的用户页面。因此,如果ID是1234,我希望最后的href是/user/1234。
我试图使用
link_to "User", {:controller => "user", :action => "show", :id => 1234 }
这给了我URL
/assets?action=show&controller=user&id=1234
link_to参数应该是什么?
我建议您尽可能使用命名路由(让Rails为您工作)。也就是说,在你的routes文件中添加一条路由:
resources :users
你可以这样写你的link_to方法:
link_to "User", user_path(@user)
或
link_to "User", user_path(1234)
对于HTML id
<%= link_to "User", {:controller => "user", :action => "show"}, :id => '1234' %>
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html method-i-link_to
对于路径id
link_to "Profile", :controller => "profiles", :action => "show", :id => @profile
# => <a href="/profiles/show/1">Profile</a>
这种语法虽然有效,但可以追溯到Rails 2时代。
为什么不使用内置的url帮助?URL helper
这将允许您将所讨论的用户作为对象传递给link_to
<%= link_to "User", user_url( user_object ) %>
或者如果你喜欢显式的(这将作为一个参数选项添加)
<%= link_to "User", user_url( :id => '1234' ) %>