0

ここにコードを入力してください

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

:adminが許可されているサービス管理者のみの場合。

開発者は管理者のために作成しませんでした(一部のユーザーは強制的に挿入します)。

一部のフィールドは、(通常のユーザーではなく)許可を持っている人だけが許可するようにしたい

(昔は無理やり挿入していました。publictumblrを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 の動的属性のアクセス可能なキャストを確認できます

于 2012-08-23T10:26:29.477 に答える