Rails:如何在没有批量分配的情况下设置或切换管理员状态?

时间:2011-07-15 22:04:22

标签: ruby-on-rails ruby-on-rails-3

我正在创建一个本质上面向公众的网站,该网站具有受保护的管理员后端(即,唯一的用户将是管理员本身)。

正如我的应用程序现在所示,用户可以通过应用程序创建(尽管用户#new和用户#编辑只能 到现有管理员)。为了与安全最佳做法保持一致,我将:admin布尔属性保留在attr_acessible之外,因此无法通过批量分配来分配或切换用户的管理员状态。

class User < ActiveRecord::Base

  attr_accessible :name, :email, :password, :password_confirmation

end

我目前只能通过控制台分配管理员状态,但我希望我的客户能够在应用内创建新用户并向他们提供管理员状态。

我如何处理应用内的user.toggle!(:admin)没有质量分配?

3 个答案:

答案 0 :(得分:2)

Here is a great tutorial符合您的需求。

答案 1 :(得分:0)

您可以使用CanCan gem设置用户权限。我认为这将解决您的问题,而不是大规模分配:

http://rubydoc.info/gems/cancan/1.6.5/frames

答案 2 :(得分:0)

尝试使用命名空间控制器以达到管理目的,并在控制器而不是表单中执行#update_attbute