我正在经历RailsCast 209-devise-revised。在application.html.erb
中,给出了这段代码(改变了路径)
<div id="container">
<div id="user_nav">
<% if user_signed_in? %>
Logged in as <strong><%=current_user.email %></strong>
<%= link_to 'Edit_profile',edit_blog_post_path%>
<%= link_to 'LogOut', destroy_user_session_path%>
<%else %>
<%= link_to 'Sign Up', new_user_path %>
<%= link_to 'Login', new_user_session_path %>
<% end%>
</div>
</div>
问题是在RailsCast中这个文件工作正常,但对我来说
No route matches {:action=>"edit", :controller=>"blog_posts"} missing required keys: [:id]
错误被抛出。
1)如果没有给出id
,它在railscast中是如何工作的?
2)在application.html.erb
如何给出ID?
答案 0 :(得分:2)
虽然你已经接受了答案,但正确的答案应该是:
<%= link_to 'Edit_profile', edit_user_path(current_user) %>
因为我认为你想要编辑用户,而不是一个其id与用户的id意外相同的博客帖子。
答案 1 :(得分:1)
试试这个
<%= link_to 'Edit_profile',edit_blog_post_path(current_user.id)%>