0

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

我试着用

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

这给了我网址

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

link_to 参数应该是什么?

4

3 回答 3

2

如果可能,我会鼓励您使用命名路由(让 Rails 为您工作)。也就是说,将路由添加到您的路由文件:

resources :users

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

link_to "User", user_path(@user)

或者

link_to "User", user_path(1234)
于 2013-01-11T19:08:09.960 回答
1

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

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

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

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

或者如果您更喜欢明确(尽管这会将其添加为参数选项)

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

于 2013-01-11T19:11:59.653 回答
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>
于 2013-01-11T19:04:36.817 回答