如何在rails上的ruby应用程序中停用和激活用户

时间:2013-04-01 12:29:52

标签: ruby-on-rails admin dashboard

我正在我的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

请帮助我实现从应用程序激活和停用用户(仅限管理员)

2 个答案:

答案 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