0

我在我的 ruby​​ on rails 应用程序中实现仪表板工具,只有管理员可以进入并查看所有在应用程序中注册的用户。从仪表板,管理员可以停用或激活用户(可能是一段时间)。我有包含 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

请帮助我从应用程序中实现用户的激活和停用(管理员只能这样做)

4

2 回答 2

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列的类型是布尔型,您可以使用user.is_active?rails 生成的方法来检查用户的帐户是否处于活动状态

于 2013-04-01T12:57:54.110 回答
0

对于您,我建议您研究 CanCan 或其他授权宝石。在您提供的迁移中,您对此无能为力,因此我建议您查看有关实施 cancan 的截屏视频。

http://railscasts.com/episodes/192-authorization-with-cancan

于 2013-04-01T12:35:23.113 回答