これは簡単なサインアップ アプリケーションです
schema.rb
create_table "users", :force => true do |t|
t.string "email"
t.string "password_hash"
t.string "password_salt"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
ユーザー.rb
attr_accessible :email, :password, :password_confirmation
attr_accessor :password
before_save :encrypt_password
validates_confirmation_of :password
validates_presence_of :password, :on => :create
validates_presence_of :email
validates_uniqueness_of :email
.
.
.
attr_accessible と attr_accessor の両方でパスワードを使用するのはなぜですか?
Rails コンソールで attr_accessor :password を削除すると、実行時にエラーが発生しました。
user = User.new
user.password # => no method error
しかし、私がこれを実行すると:
user = User.new
user.email # => nil
これは、attr_accessor に追加せずに user.email が機能することを意味します。
また、これは機能しています:
user = User.new
user.password_confirmation # => nil
しかし、私が削除したとき:
validates_confirmation_of :password
動作しません。なぜですか??。