【问题标题】:What is missing in my application.html.erb? RailsCast 209-devise-revised我的 application.html.erb 中缺少什么? RailsCast 209-设计-修订
【发布时间】:2015-09-24 12:10:27
【问题描述】:

我正在浏览 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=&gt;"edit", :controller=&gt;"blog_posts"} missing required keys: [:id] 抛出错误。

1) 在不提供id 的情况下,它如何在 railscast 中工作?

2) 在application.html.erb 中我如何提供 id?

【问题讨论】:

    标签: ruby-on-rails devise railscasts


    【解决方案1】:

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

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

    因为我假设您要编辑用户,而不是其 id 意外与用户 id 相同的博客文章。

    【讨论】:

    • 是的,正如您所说,我在之前的答案中遇到了一些问题。 :)
    【解决方案2】:

    试试这个

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

    【讨论】:

      猜你喜欢
      • 2014-02-06
      • 2013-09-19
      • 2012-05-13
      • 2019-05-30
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      相关资源
      最近更新 更多