我的 application.html.erb 中缺少什么? RailsCast 209-设计-修订

What is missing in my application.html.erb? RailsCast 209-devise-revised

我正在浏览 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?

试试这个

<%= link_to 'Edit_profile',edit_blog_post_path(current_user.id)%>

虽然您已经接受了答案,恕我直言,正确答案应该是:

<%= link_to 'Edit_profile', edit_user_path(current_user) %>

因为我假设您要编辑用户,而不是博客-post 其 ID 意外地与用户的 ID 相同。