使用rails link_to只带一个ID

时间:2013-01-11 19:03:30

标签: ruby-on-rails ruby-on-rails-3

我有一个页面需要指向具有给定ID的用户页面的链接。因此,如果ID为1234,我希望最终的href为/ user / 1234。

我尝试使用

link_to "User", {:controller => "user", :action => "show", :id => 1234 } 

这给了我一个网址

/assets?action=show&controller=user&id=1234

link_to参数应该是什么?

3 个答案:

答案 0 :(得分:2)

我鼓励你尽可能使用命名路由(让Rails为你工作)。也就是说,添加路由文件的路径:

resources :users

然后,您可以将link_to方法编写为:

link_to "User", user_path(@user)

link_to "User", user_path(1234)

答案 1 :(得分:1)

对于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>

答案 2 :(得分:1)

这种语法虽然有效,但仍然可以回到Rails 2天。

为什么不使用内置的url助手? URL Helpers

这将允许您将有问题的用户作为对象传递给link_to

<%= link_to "User", user_url( user_object ) %>

或者如果您希望明确(这会将其添加为params选项)

<%= link_to "User", user_url( :id => '1234' ) %>