LoginSignup
7
9

More than 5 years have passed since last update.

Cloud9 on Railsでdevise導入の一部始終

Last updated at Posted at 2017-09-29

Deviseの導入

準備

下記の環境で実行しています
Ruby 2.3.4
Rails 5.0.1

  1. cloud9のアカウントの作成、ログイン
  2. cloud9上に新しいRubyワークスペースを作成する
  3. ワークスペースを開く

スクリーンショット 2017-09-29 12.57.41.png

上記の画面が出て来れば準備はOKです

RubyとRailsのバージョンを合わせておく

Gemfileの書き換え

  • Gemfileを開いて、5行目付近を下記のように書き換え
gem 'rails', '5.0.1' # gem 'rails', '4.2.5'
  • ターミナルでコマンドを実行
$ bundle update
$ bundle install

エラーが発生しなければOKです

Deviseを使ってユーザー認証機能を作成する

Deviseはrubyのgemで、ログインなどの認証が必要なアプリを作るために利用されます。
CSSがデフォルトのままだと見にくいので、今回はbootstrapを使ってレイアウトを整えることにします。bootstrapの設定が不要な場合は、bootstrapに関係する箇所は適宜飛ばして構いません。

1. Gemfileの書き換え

下記をGemfileの3~6行目に追記して保存します

gem 'devise' # 追記
gem 'devise-bootstrap-views' # 追記
gem 'devise-i18n' # 追記
gem 'devise-i18n-views' # 追記
gem 'bootstrap-sass', '~> 3.3.6' # 追記

2. ターミナルで下記のコマンドを順番に実行

$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
$ bundle install
$ rails generate devise:install
$ rails generate devise User
$ rails db:migrate

3. app/controllers/application_controller.rbのファイル書き換え

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  before_action :authenticate_user!
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up) do |user_params|
      user_params.permit(:name, :email, :password, :password_confirmation)
    end
    devise_parameter_sanitizer.permit(:account_update) do |user_params|
      user_params.permit(:name, :email, :password, :password_confirmation, :current_password)
    end
  end
end

4. app/assets/stylesheets/application.scssの書き換え

@import "bootstrap-sprockets";
@import 'bootstrap';
@import 'devise_bootstrap_views'

5. app/assets/javascripts/application.jsの書き換え

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets

以上でdeviseの導入準備が整いました。

ユーザー登録・編集画面を作成する

1. ターミナルで下記のコマンドを順番に実行

$ rails g devise:views:bootstrap_templates
$ rails g scaffold Book title:string author:string
$ rails db:migrate

2. routes.rbを下記のように書き換え

Rails.application.routes.draw do
  resources :books
  devise_for :users
  root 'books#index'
end

3. サーバー起動

$ rails s -p $PORT -b $IP

4. previewを見てみる

スクリーンショット 2017-09-29 13.34.47.png

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9