2013-06-05 3 views
12

これは新しいプロジェクトです。誰かがその方向にアドバイスを持っていれば、簡単にスクラップして再起動することができます。基本的に私が使って工夫して、ユーザーを作成しました:ユーザーのインデックスビューを作成する

rails generate devise users 

をしかし、今、私はすべてのユーザーを表示するには、ユーザーの#インデックスページのようなものへのルートを作成します。 rake routes

私の次の考えは、このようなビューとコントローラの機能を試してみることでした。これはうまくいかなかった。

私は比較的新しいレールですが、かなり一般的な把握があります。私はdeviseを使い始めました。その部分が私を最も混乱させるので、私は検証のために使っています。私は助けを探し回って、devise pageをかなり研究しましたが、役に立たない。

ちょっとした情報です。私がルートを試みるときhttp://localhost:3000/users私はuninitialized constant UsersControllerを得るが、私がユーザーコントローラを追加したとき、それはちょうど何かについて不平を言いました。私はいくつかのことを試しましたが、それらのすべてに入ることによって質問を希薄化したくありません。

答えて

22

Deviseは、独自のコントローラとビューをgemライブラリディレクトリに隠します。ビューをプロジェクトにドラッグして編集することもできますが、コントローラには何も似ていません。いくつかの例については、Devise documentationを参照してください。

それは、このために、独自のコントローラとビューを生成するために非常に簡単です:

のconfig/routes.rbを:

# NOTE: put this after the 'devise_for :users' line 
resources :users, only: [:index] 

アプリ/コントローラ/ users_controller.rb:

class UsersController < ApplicationController 

    def index 
    @users = User.all 
    end 

end 

app/views/users/index.html.erb:

<ul> 
    <% @users.each do |user| %> 
    <li><%= user.name %></li> 
    <% end %> 
</ul> 

これはあなたに適した最小限の例です。

ActiveAdminをアプリの公開部分のようにスタイルする必要がない場合は、それを使用することをおすすめします。コーディング、スタイリング、アプリが必要とする多くの基本的なレコード管理機能を確保する手間を省きます。私はActiveAdminを使用し、上記のように自分のコントローラ/ビュー/ルートをロールして、アプリケーションの公開部分にユーザーリストを表示します。

+2

これは理にかなっています。今日は後で試してみるよ –

1

Deviseは登録とログイン/ログアウトを処理します。それは他に何もしません。索引は、レール内の典型的なコントローラ動作です。ユーザーの足場を生成したときに余分なパラメータを追加しましたか? Rails getting startedには基本的なドキュメントがあります。足場に関する第6セクションまでスクロールします。足場を生成するときは、モデル、ビュー、およびコントローラを作成します。そのチュートリアルの第7章では、最初からモデルを生成します。あなたの場合、ユーザーモデルは、名前の文字列と電子メールの文字列を持つことがあります。モデルはブール値や整数のような多くの属性を持つことができます。 (あなたはパスワードのような認証のためのdevise属性を追加したいが、それは後で追加することができる。)したがって、足場をもう一度生成してみると、rails generate scaffold user name:string email:stringとなる。これにより、ユーザーモデルに名前と電子メールの列が追加されます。そこからスカホールドは、コントローラと基本ビューのデフォルトアクションを設定します。その後、あなたはインデックスアクションを持っているはずです。

関連する問題