Ruby on Rails4でdevise 1:導入
deviseを導入してみます。
Deviseのインストール
Gemfileの修正
gem 'devise'
Deviseをインストールするため以下のコマンドを実行
# Deviseのインストール bundle install --path vendor/bundle bundle exec rails generate devise:install # Devise用のModel作成 bundle exec rails generate devise User # Devise用のview生成(なければデフォルトを使用する) bundle exec rails generate devise:views users
Devise用のリンク追加
app/views/layouts/application.html.erbを修正
<%= render 'layouts/navigation' %>
app/views/layouts/_navigation.html.erbを作成
<ul class="nav"> <li><%= link_to 'Home', root_path %></li> <% if user_signed_in? %> <li><%= link_to 'Logout', destroy_user_session_path, :method=>'delete' %></li> <% else %> <li><%= link_to 'Login', new_user_session_path %></li> <% end %> <% if user_signed_in? %> <li><%= link_to 'Edit account', edit_user_registration_path %></li> <% else %> <li><%= link_to 'Sign up', new_user_registration_path %></li> <% end %> </ul>
機能制御
ひとまずログインできなかったら使えないようにする。 例えばbookのコントローラーに制御を入れる場合、1行追加すればOK。 app/controllers/books_controller.rbを修正。
class BooksController < ApplicationController before_action :set_book, only: [:show, :edit, :update, :destroy] + before_filter :authenticate_user!