我有一个页面需要指向具有给定 ID 的用户页面的链接。所以如果 ID 是 1234,我希望最终的 href 是 /user/1234。
我试着用
link_to "User", {:controller => "user", :action => "show", :id => 1234 }
这给了我网址
/assets?action=show&controller=user&id=1234
link_to 参数应该是什么?
我有一个页面需要指向具有给定 ID 的用户页面的链接。所以如果 ID 是 1234,我希望最终的 href 是 /user/1234。
我试着用
link_to "User", {:controller => "user", :action => "show", :id => 1234 }
这给了我网址
/assets?action=show&controller=user&id=1234
link_to 参数应该是什么?
如果可能,我会鼓励您使用命名路由(让 Rails 为您工作)。也就是说,将路由添加到您的路由文件:
resources :users
然后,您可以将您的 link_to 方法编写为:
link_to "User", user_path(@user)
或者
link_to "User", user_path(1234)
这种语法虽然有效,但可以追溯到 Rails 2 天。
为什么不使用内置的 url 助手?URL 助手
这将允许您将有问题的用户作为对象作为 link_to 传递
<%= link_to "User", user_url( user_object ) %>
或者如果您更喜欢明确(尽管这会将其添加为参数选项)
<%= link_to "User", user_url( :id => '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>