0

Devise を使用してユーザー モデルを作成し、後で移行を使用してモデルに:adminフィールドを追加しました。default => falseここで、管理者ユーザーを手動で作成する必要があるため、Rails コンソールで試しまし superadmin = User.create({ :email => 'email@mail.com', :password => '12345678' , :admin=> true }) たが、以下のエラーが発生しました:

ActiveModel::MassAssignmentSecurity::エラー: 保護された属性を一括割り当てできません: /var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active_model/mass_assignment_security/sanitizer.rb:48 からの管理者: /var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active_model/mass_assignment_security/sanitizer.rb:12のprocess_removed_attributes' from /var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active_model/mass_assignment_security/sanitizer.rb:20:indebug_protected_attribute_removal 内: /var/lib/gems/1.9.1/sanitize' from /var/lib/gems/1.9.1/gems/activemodel-3.2.13/lib/active_model/mass_assignment_security.rb:230:inの sanitize_for_mass_assignment内gems/activerecord-3.2.13/lib/active_record/attribute_assignment.rb:75:in assign_attributes' from /var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/base.rb:498:ininitialize' from /var/lib/gems/1.9.1/gems/devise-2.2.4/lib/devise/models/confirmable.rb :46:in initialize' from /var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/persistence.rb:44:innew' from /var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/persistence.rb:44:increate' from (irb):4 from /var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:47:instart' from /var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in start' from /var/lib/gems/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:41:in' from script/rails:6:in require' from script/rails:6:in'

ユーザーを手動で作成する別の方法はありますか? (コマンドを使用)

4

1 に答える 1

1

に値を割り当てようとしていますがadmin、現在、割り当てにアクセスできません。adminこれを修正するには、属性を宣言する必要がありますattr_accessible:

# app/models/user.rb
class User < ActiveRecord::Base
    attr_accessible :admin
end

これにより、描写した正確な方法で新しいユーザーを作成できます。

于 2013-06-16T12:25:11.750 に答える