読者です 読者をやめる 読者になる 読者になる

Deviseでユーザを追加する方法

Rails

DeviseはRailsにユーザ認証機能を提供します。ユーザがサービスにサインアップする以外に、管理者がユーザを追加することがあり、その方法を調べました。

RubyGemsからDeviseをインストールします。

$ sudo gem install devise

Gemfileを編集して以下の記述を追加します。

gem 'devise'

RailsアプリケーションにDeviseをインストールします。

$ rails generate devise:install
      create  config/initializers/devise.rb
      create  config/locales/devise.en.yml

===============================================================================

Some setup you must do manually if you haven't yet:

  1. Setup default url options for your specific environment. Here is an
     example of development environment:

       config.action_mailer.default_url_options = { :host => 'localhost:3000' }

     This is a required Rails configuration. In production it must be the
     actual host of your application

  2. Ensure you have defined root_url to *something* in your config/routes.rb.
     For example:

       root :to => "home#index"

  3. Ensure you have flash messages in app/views/layouts/application.html.erb.
     For example:

       <p class="notice"><%= notice %></p>
       <p class="alert"><%= alert %></p>

===============================================================================

ユーザを作成します。

$ rails generate devise User

Viewをカスタマイズしたいときは以下のコマンドを実行すると、app//views/deviseにいろいろファイルが置かれますので、それを編集します。

$ rails generate devise:views

本題のユーザの追加は以下のように実行します。

User.create! do |u|
  u.email = 'user1@user.com'
  u.password = '123456'
  u.password_confirmation = '123456'
end

参考:Creating an admin user in Devise on Rails beta 3