1

Rails3.2.3とDevise2.1

すべてのユーザーを表示するシンプルなページになると思ったものを作成しようとしています。ユーザーはDeviseによって制御されています。ユーザーはプロフィール画像とメールアドレスを持っています。すべてのDeviseビューは正常に機能しています。

新しいuser_controllerまたはapplication_controllerでユーザーを定義するなど、他の場所で見られる提案のいくつかを試しましたが、私の定義は他のページに到達しません。同じ一連のエラーメッセージが表示され続けます。

私のルートは正常に機能しています。アップローダーとモデルですべてのcarrierwaveのものが正しく機能しています。Deviseのものの外に「ユーザー」を見つけることができないようです。私は、明白な何かが単純に明白であることを望んでいるのは愚かであることを知っていますが、。。。

私の現在のエラーは次のとおりです。

undefined method `image_url' for nil:NilClass

ユーザーを表示するためのマイページ:

<% provide(:title, 'Our Users') %>
<div class="center hero-unit">
  <div>
    <h2>Our Users</h2>
    <%= render 'shared/user' %>
  </div>
</div>

ヘルパー:

<div>
  <%= image_tag user.image_url(:thumb).to_s %>
  <h5><%= user.email %></h5>
</div>

users_controllerでさまざまなことを試しましたが、何も機能しないようです。ルートにresources:usersを追加してみました。助け無し。

ヒント、ポインタなどをいただければ幸いです。スタックオーバーフローの部族を不必要に悩ませないように、私はこれで4時間行ったが、私は困惑している。

4

4 に答える 4

5

解決しました!ユーザーをDevise以外のコントローラーで定義しようとしていました。次に、これを私の見解で使用します。

<% @users.each do |user| %>
  <%= image_tag user.image_url(:thumb).to_s %>
  <%= user.email %><br/>
<% end %>

新しい user_controller を捨てて、ビューを次のように変更しました。

<% @users = User.all %>
<% @users.each do |user| %>
  <%= image_tag user.image_url(:thumb).to_s %>
  <%= user.email %><br/>
<% end %>

バム!すぐに現れました。

于 2012-07-21T17:13:50.160 に答える
0

次のように、通常のモデルと同じようにユーザーを見つける必要があります。

user = User.find(1)
user.email

現在のユーザーに対してできることcurrent_user.email

コントローラーでは、これを行う必要があります:

@users = User.all

そしてあなたの見解では

<% @users.each do |user| %>
  <%= user.email %>
<% end %>
于 2012-07-20T22:14:14.490 に答える
0

すべてのユーザーが提供されたレール部分コレクションレンダリングを設定して印刷するにUser.allは:

<% provide(:title, 'Our Users') %>
    <div class="center hero-unit">
      <div>
        <h2>Our Users</h2>
        <%= render 'shared/user', :collection=>User.all %>
    </div>
</div>
于 2012-07-20T22:14:21.753 に答える