我的application.html.erb缺少什么? RailsCast 209-devise-revised

时间:2015-09-24 12:10:27

标签: ruby-on-rails devise railscasts

我正在经历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?

2 个答案:

答案 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)%>