我正在开发一个 CRUD 界面来管理我的应用程序中的用户。我有一个常量 User::ROLES ,它是一个数组,其中包含我的应用程序(管理员、教师、学生)中有效用户角色的名称。
我想要做的是,在控制器的索引操作中,有一个块迭代 ROLES 常量并从 @users 创建一个作用域实例变量(它已经在块之前初始化)。以下是 index 方法目前的样子:
def index
@users = user.all
#@students = @users.where(:role => "student") # This works by itself
User::ROLES.each do |r|
@r = @users.where(:role => r.to_s)
end
end
所以我希望能够通过块传递的内容来命名实例变量,所以@r 创建了@admin、@teacher 等。由于我是 ruby 和 rails 的新手,所以我不太了解这样做的语法这个。谁知道?无论如何,可能有更好的方法来做到这一点。
编辑
只是为了让大家知道,我希望在 index 操作的视图中使用它来显示按角色分组的用户列表。当然,它也会在整个 CRUD 界面中以其他方式使用,这就是为什么我没有在前面阐明用例的原因,因为它是多用途的。