【问题标题】:Add Show User Link to Navbar Devise将显示用户链接添加到导航栏设计
【发布时间】:2013-09-05 16:04:14
【问题描述】:

在课堂上,我构建了一个 Pintrest 风格的应用程序,并且我最近为我的用户设置了一个显示操作。该链接在各个引脚上运行良好,但是当我尝试将 users#show 链接添加到名为“配置文件”的导航栏时,它无法导航到任何地方。 Profile 链接应该导航到users#show,但显示的 Profile 的 URL 是我的 pins#index,这是我的根路由。这是我导航栏中_header.html.erb 下的链接。

      <div class="nav-collapse collapse">
        <ul class="nav pull-right">
        <% if user_signed_in? %>
          <li><%= link_to "Add Trip", new_pin_path %></li>
          <li><%= link_to "About", about_path %></li>
          <li><%= link_to "Profile", @user %></li>
          <li><%= link_to "Logout", destroy_user_session_path, method: :delete %></li>
        <% else %>
          <li><%= link_to "About", about_path%></li>
          <li><%= link_to "Login", new_user_session_path %></li>
        <% end %>
          </ul>
      </div>

这是我的users_controller.rb

class UsersController < ApplicationController
def show
    @user = User.find(params[:id])
    @pins = @user.pins.page(params[:page]).per_page(20)
  end
end

但是_pin.html.erb 中的针脚上的显示用户链接在我的pins#index 中呈现的效果很好。

<div class="box">
  <p class= "description">
    <%= pin.description %>
  </p>
  <%= link_to (image_tag pin.image(:medium)), pin %>
  <p class= "author">
    <strong>
      Posted by <%= link_to pin.user.name, pin.user %>
    </strong>
  </p>
</div>

最后,如果我将_pin.html.erb &lt;%= link_to pin.user.name, pin.user %&gt; 中的相同链接复制到导航栏,我会得到undefined local variable or methodpin' 的#`。

这是我的routes.rb 以防万一。

devise_for :users
match 'users/:id' => 'users#show', as: :user

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap devise show


    【解决方案1】:

    您需要使用current_user 而不是@user,因为在大多数情况下@user 将为零(除了在您的用户#show 页面上。

    创建一个始终加载当前用户的/profile 路由也是一个好主意。

    【讨论】:

    • 感谢它的工作!我想我看到了我感到困惑的地方,我想我可以调用@user 来路由到节目,而不是在节目页面上调用它。当我在终端中执行 Rake Routes 时,current_user 没有作为一个选项出现是否有原因?另外,感谢您的提示,我会看看是否可以找到如何创建/profile 路由。
    • 太好了,我希望我早点找到你的回复:)
    猜你喜欢
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2017-09-28
    • 2020-07-18
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多