updated on 2019-01-14
管理者しか入れたくないページがあるので、権限を管理者だけにする
(make access impossible except admin.)
usersテーブルに権限カラムを追加して、特定のユーザーにのみtrueを与える
(add admin column in users table.)
手順1. usersテーブルにadminカラムの追加
$ rails generate migration add_admin_to_users admin:boolean (db/migrate/[timestamp]_add_admin_to_users.rb will be created!)
手順2. 生成されたマイグレーションファイルを編集
(Edit [timestamp]_add_admin_to_users.rb)
#[timestamp]_add_admin_to_users.rb class AddAdminToUsers <ActiveRecord::Migration def change add_column :users, :admin, :boolean, default: false end end
手順3. マイグレーションファイルを読み込む
(run migrate command)
$ rake db:migrate
これでusersテーブルにadminカラムが追加されました。
手順4. 開発者ユーザーにadmin:trueを入れる
(add admin:true in column)
方法A) seedデータを作成 # db/seeds.rb User.create!(name: "ADmin User", email: "admin@example.com", password: "foobar", password_confirmation: "foobar", admin: true) $ rake db:seed
または
方法B)コンソールから作成 $ rails console >> user = User.find(name: "adminUserName") >> user.admin? => false >> user.toggle!(:admin) => true >> user.admin? => true
<% if current_user.admin? %> <%= link_to "Delete", article_path(article), class: "btn btn-danger", data: {:confirm => "削除してもよろしいですか?"}, method: :delete %> <% end %>
before_action :admin_user, only: :destroy private def admin_user redirect_to(root_url) unless current_user.admin? end
完了!!