Rails中的批量分配和角色

时间:2012-07-17 01:05:18

标签: ruby-on-rails mass-assignment attr-accessible

我在Rails 3中有Users, Roles, and Network个模型。UsersNetworks通过Roles建立了HMT关系。如果User具有Role类型的'admin'且具有特定Network,则他/她可以更改其他Role的{​​{1}}。

似乎Users类型不应通过批量分配提供。那么Role管理员如何更改其他Network的排名类型?我实际上认为这是一个非常基本的问题,但我找不到答案。

我正在使用CanCan并拥有current_user方法。这只是意味着控制器会有一个简单的if / then检查用户是否在网络中具有相应的角色?

质量分配是否仅适用于没有身份验证的网页?

1 个答案:

答案 0 :(得分:1)

所以有几件事

  1. 如果用户是管理员,您可能会在users / 1 / edit页面上显示一个角色选择框
  2. 在控制器上的更新操作中,您将获得某种授权以确保用户是管理员
  3. 何时进行更新
  4. class myModel < ActiveRecord::Base
      attr_accessible :some_attr, :other_attr
      attr_accessible :some_attr, :other_attr, :role_id, :as => :admin
    end
    
    class myController < ApplicationController
      #admin check before doing the following
      if @user.update_attributes(params[:user], :as => :admin)
        redirect_to root_path
      end
    end