Чего не хватает в моем application.html.erb? RailsCast 209-разработка-пересмотр

Я собирался через 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) Как это работает в Railscast, не давая id?

2) В application.html.erb как я могу дать идентификатор?

2 ответа

Решение

Пока вы уже приняли ответ, imho правильный ответ должен быть:

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

Потому что я предполагаю, что вы хотите отредактировать пользователя, а не запись в блоге, чей идентификатор случайно совпадает с идентификатором пользователя.

Попробуй это

<%= link_to 'Edit_profile',edit_blog_post_path(current_user.id)%>
Другие вопросы по тегам