【问题标题】:Mass assignment and roles in RailsRails 中的批量分配和角色
【发布时间】:2012-07-17 01:05:17
【问题描述】:

我在 Rails 3 中有 Users, Roles, and Network 模型。UsersNetworks 通过 Roles 具有 HMT 关系。如果UserRole 类型为“admin”且具有特定的Network,则他/她可以更改其他UsersRole

似乎Role 类型不应该通过批量赋值获得。那么Network 管理员如何更改其他Users 的职位类型?我实际上认为这是一个非常基本的问题,但我找不到答案。

我正在使用 CanCan 并且有一个 current_user 方法。这是否仅仅意味着控制器将有一个简单的 if/then 检查用户是否在网络中具有适当的角色?

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

【问题讨论】:

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


    【解决方案1】:

    有几件事

    1. 如果用户是管理员,您可能会在 users/1/edit 页面上显示一个角色选择框
    2. 在控制器上的更新操作中,您将获得某种授权以确保用户是管理员
    3. 何时进行更新

    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
    

    【讨论】:

    • 谢谢!我看到了 as :admin 的东西,但不知道我是否误解了它。
    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 2012-08-17
    相关资源
    最近更新 更多