У меня есть пример приложения Rails 3.1.1, которое я настроил для управления учетными записями пользователей и т. Д.
Я выполнил следующие шаги, чтобы добавить атрибут admin в таблицу пользователей:
$ rails generate migration add_admin_to_user admin:boolean
Добавил следующее в мою миграцию:
class AddAdminToUser < ActiveRecord::Migration
def self.up
add_column :users, :admin, :boolean, :default => false
end
def self.down
remove_column :users, :admin
end
end
Затем я запустил миграцию db: migrate и добавил в файл макета следующее:
<% if current_user.admin? %>
You are ADMIN.
<%end %>
Затем, чтобы добавитьПервый пользователь-администратор Я использовал следующий начальный файл:
puts 'SETTING UP DEFAULT USER LOGIN'
user = User.create! :name => 'Test User', :email => 'test@test.com', :password => 'password', :password_confirmation => 'password'
puts 'New user created: ' << user.name
Это сработало, поэтому я адаптировал его к полю администратора:
puts 'SETTING UP DEFAULT USER LOGIN'
user = User.create! :name => 'Test User', :email => 'test@test.com', :password => 'password', :password_confirmation => 'password', :admin => 'true'
puts 'New user created: ' << user.name
Вышеприведенный начальный файл работал, ноФлаг администратора не отображается.
Я что-то пропустил?
Обновление: модель / пользователь / rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :name, :email, :password, :password_confirmation, :remember_me
end