2013-03-14 100 views
2

所以我有一个Bootstrap导航栏顶部。路由到current_user路径

我想LINK_TO CURRENT_USER的编辑路径,但我总是得到错误:

ActionController::RoutingError at /blog 

No route matches {:action=>"edit", :controller=>"users"} 

这就是IM难以释怀的时刻:

<% if current_user %> <--! user logged in? --> 
<% @user ||= current_user %> 
<%= link_to 'Settings', edit_user_path %> 
<% end %> 

我没有这个错误在/用户/ 1 /页面,但我在其他地方都有。

也试过这一点,但并没有帮助:

def edit 
    if params[:id] 
    @user = User.find(params[:id]) 
    else 
    @user = current_user 
    end 
end 

回答

6

试试这个,

<%= link_to 'Settings', edit_user_path(current_user) %> 
+0

工作得像魔法:)谢谢 – 2013-03-14 11:21:14

+0

如果有效,为什么不接受答案/ \ – 2013-03-14 11:48:06

+0

必须做的东西,但在这里,我们去:) – 2013-03-14 12:07:24

0

edit_user_path需要用户记录被传递到路径,请执行下列操作

<% if current_user %> <--! user logged in? --> 
    <%= link_to 'Settings', edit_user_path(current_user) %> 
<% end %>