我一起this tutorial,並在一個點以下,它告訴我MassAssignmentSecurity錯誤而attr_accessible被稱爲
... add password and password_confirmation attributes to the User model [...] Unlike the other attributes we’ve seen so far, the password attributes will be virtual—they will only exist temporarily in memory, and will not be persisted to the database.
而且
As we’ll see in Section 6.3.4, these virtual attributes are implemented automatically by has_secure_password.
我的模型看起來是這樣的:
class User < ActiveRecord::Base
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
has_secure_password
attr_accessible :email, :is_admin, :name, :password, :password_confirmation
validates :name, presence: true, uniqueness: true
validates :password_digest, presence: true
validates :password, presence: true, length: { minimum: 6 }
validates :password_confirmation, presence: true
validates :email, presence: true, format: {with: VALID_EMAIL_REGEX}, uniqueness: true
end
所以現在當我嘗試創建一個新的用戶;
User.create(name: "Foo Bar", email: "[email protected]", password: "foobar", password_confirmation: "foobar")
我得到以下錯誤:
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: password, password_confirmation
爲什麼?
我覺得這也應該工作。你做了平常的伎倆嗎?重新遷移數據庫並重新啓動rails服務器? – 2013-02-22 18:21:51
啊,重新做了這個伎倆。謝謝! – Maarten 2013-02-22 18:47:36
@garbagecollection您可以將您的評論推薦給答案,以便OP能夠接受它嗎? – alestanis 2013-02-27 11:07:17