0

サインインしている場合、ナビのボタンに現在のユーザー名を表示しようとしています.ホームコントローラーを何にも使用していません。そこで名前を定義するように求めているのはなぜですか? ナビゲーションで user.name をレンダリングしようとすると、別のコントローラーを含むページでエラーが発生します。

NoMethodError in Home#index

Showing /Users/nelsonkeating/Desktop/ReminDeal/app/views/layouts/_navigation.html.erb where line #10 raised:

undefined method `name' for nil:NilClass
Extracted source (around line #10):

7: <% if user_signed_in? %>
8:  <div class="logout1">
9:      <div class="btn-group">
10:             <button class="btn"><Action> <%= @user.name %> </button>
11:             <button class="btn dropdown-toggle" data-toggle="dropdown">
12:                 <span class="caret"></span>
13:             </button> 
              <ul class="dropdown-menu">
            <li><%= link_to 'Logout', destroy_user_session_path, :method=>'delete' %></li>
            <li><%= link_to 'My Account', edit_user_path(current_user.id)  %></li>
            <li><%= link_to "Help", help_path %></li>
        </ul>
    </div>
</div>
</li>
4

2 に答える 2

1

コントローラーで @user を宣言しましたか? 10 行目を次のように変更してみてください。

  <button class="btn"><Action> <%= current_user.name %> </button>
于 2012-05-26T22:41:26.350 に答える
0

私はstackoverflowでこの他のスレッドを見つけましたが、同じ問題のようです:

考案: NoMethod エラー & user_signed_in

User モデルで devise :database_authenticatable への呼び出しが欠落しているようです。

于 2012-05-26T23:21:27.540 に答える