我正在我的ruby on rails应用程序中实现仪表板工具,只有管理员可以进入并查看所有使用应用程序注册的用户。在仪表板中,管理员可以停用或激活用户(可能是某段时间)。我有User表,其中包含is_active列。我知道,可以通过在表格中的此列上设置标志来完成。能否详细解释一下。
以下是我的用户表。
create_table "users", :force => true do |t|
t.string "email", :default => "", :null => false
t.string "encrypted_password", :default => "", :null => false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", :default => 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.boolean "is_admin"
t.boolean "is_active"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "username"
end
请帮助我实现从应用程序激活和停用用户(仅限管理员)
答案 0 :(得分:1)
你可以在User
模型中创建两个方法来激活&停用用户
class User < ActiveRecord::Base
def activate_account!
update_attribute :is_active, true
end
def deactivate_account!
update_attribute :is_active, false
end
end
由于is_active
列的类型为布尔值,您可以使用rails生成的user.is_active?
方法来检查用户的帐户是否处于活动状态
答案 1 :(得分:0)
对于您,我建议您查看CanCan或其他授权宝石。您提供的迁移中没有任何可以做的事情,因此我建议您查看有关实施cancan的屏幕演示。
http://railscasts.com/episodes/192-authorization-with-cancan