我在我的应用程序布局中尝试此代码。它是屏幕顶部的“用户导航”栏。
<%= 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是我的参数。
答案 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一样