私は Michael Hartl のチュートリアルを進めており、sample_data.rake ファイルがあります。データベースにデータを入力しようとすると、「保護された属性を一括割り当てできません: 管理者」というエラーが表示されます。「user.rb」ファイルの「attr_accessible」に「:admin」を追加することで修正できますが、これにより、誰でもハッキングして管理者になることができます。この問題を解決するにはどうすればよいですか?
sample_data.rake ファイル
namespace :db do
desc "Fill database with sample data"
task populate: :environment do
admin = User.create!(name: "Example User",
email: "example@railstutorial.org",
password: "foobar",
password_confirmation: "foobar",
admin: true)
name = Faker::Name.name
email = "example-#{n+1}@railstutorial.org"
password = "password"
User.create!(name: name,
email: email,
password: password,
password_confirmation: password)
end
end
user.rb ファイル
class User < ActiveRecord::Base
has_many :microposts, dependent: :destroy
attr_accessible :name, :email, :password, :password_confirmation
has_secure_password
before_save { |user| user.email = email.downcase }
before_save :create_remember_token
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true,
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
validates :password, presence: true, length: { minimum: 6 }
validates :password_confirmation, presence: true
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
助けてくれてありがとう!全くの初心者なので簡単にお願いします。