路径存在,但收到错误

时间:2013-01-17 03:10:50

标签: ruby-on-rails ruby-on-rails-3 devise routes cancan

我在我的应用程序布局中尝试此代码。它是屏幕顶部的“用户导航”栏。

<%= link_to "My Profile", edit_profile_path, :class => "user_nav_button" %>

我正在

  

没有路线匹配{:action =&gt;“edit”,:controller =&gt;“profiles”}

但是,rake路线显示:

  

edit_profile GET /profiles/:id/edit(.:format)个人资料#edit

如果我直接转到 /个人资料/ 1 /编辑我的观点有效,而link_to显示..........

我认为这与没有正确使用params有关...我正在使用devise / cancan / rolify和current_user.id是我的参数。

2 个答案:

答案 0 :(得分:3)

该路径方法调用需要该对象的实例。否则Rails不知道你想编辑哪个用户配置文件,它不会猜测。

edit_profile_path(@user) # Where @user is an instance of a User model from your controller

答案 1 :(得分:1)

如果你不想在地址栏上显示id,你应该在没有id的情况下添加/ profile / edit之类的新路由,并在控制器上获取current_user的id

另外使用edit_profile_path(@user)就像上面提到的patrickmcgraw一样