我正在我的应用程序布局中尝试此代码。它是屏幕顶部的"用户导航"栏。
<%= link_to "My Profile", edit_profile_path, :class => "user_nav_button" %>
I am getting
没有匹配{:action=>"edit",:controller=>"profiles"}的路由
然而,rake路由显示:
edit_profile GET/profiles/:id/edit(.:format) profiles#edit
如果我直接去/profiles/1/edit我的视图工作,link_to显示..........
我认为这与没有正确获取参数有关…我使用的是设计/cancan/rolify和current_user。Id是我的参数
path方法调用需要对象的实例。否则,Rails不知道你想编辑哪个用户配置文件,也不会猜测。
edit_profile_path(@user) # Where @user is an instance of a User model from your controller
如果你不想让id显示在地址栏上,你应该添加一个新的路由到/profile/edit之类的东西,不带id,在控制器上,获取current_user的id
否则使用edit_profile_path(@user)就像patrickmcgraw上面说的