如何获得" http:// localhost:3000 / users / current"来自user_path(:current)?

时间:2015-05-30 08:29:20

标签: ruby-on-rails

我尝试使用 Rails 3.2.21 练习#163 Self-Referential Association并且几乎可以正常工作,但我只能显示

http://localhost:3000/users/1

而不是

http://localhost:3000/users/current

URL地址栏中的

。我阅读并搜索几乎所有代码,我只找到一个current

<%= link_to "View Profile", user_path(:current) %>

我该怎么做?它与Rails 3有关?非常感谢!

2 个答案:

答案 0 :(得分:2)

Railscast有点不同寻常,但user_path()方法将接受一个值(对象,字符串,整数,符号)并在其上调用to_param。符号(在本例中为:current)将变为“current”,并且构建的url将为“/ users / current”。如果你传递给@user(用户实例),to_param方法将返回一个“1”(对象的id)给你“/ users / 1”。

我说这段代码是非常规的,因为users_controller#show方法不使用ID来查找@user。为方便起见,它只是将其设置为current_user。 Ryan并没有试图教这个,更多的是关于宁静的友谊控制器和数据建模的友谊。

答案 1 :(得分:0)

试试这个

<%= link_to "View Profile", users_path(:current) %>.