0

在此处输入代码

@user = User.new(params[:id])
@user.update_attributes(params[:user])
# params[:user] = {:admin => true, :name => "stackoverflow", ...}

如果 :admin 只允许服务管理员。

开发人员没有为管理员制作(例如,但有些用户强行插入。

我希望某些字段仅由具有权限的人(不是普通用户)允许

(以前我是强行插入的。public tumblr 不能更改为 private tumblr,但是可以通过插入 soem 代码行来实现)

4

1 回答 1

0

您正在搜索的是 attr_accessible。

来自http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html

class AccountsController < ApplicationController
  include ActiveModel::MassAssignmentSecurity

  attr_accessible :first_name, :last_name
  attr_accessible :first_name, :last_name, :plan_id, :as => :admin

  def update
    ...
    @account.update_attributes(account_params)
    ...
  end

  protected

  def account_params
    role = admin ? :admin : :default
    sanitize_for_mass_assignment(params[:account], role)
  end

end

注意: 这仅适用于 rails > 3.0。如果您的版本小于 3,您可以查看 ryan bate 的动态 attr 可访问演员表

于 2012-08-23T10:26:29.477 回答