new
でオブジェクトを作成し,save
で保存する。save
するまでは,何も変更されない。
ruby
1user = User.new(name: 'Alice', age: 20)
2user.persisted? # => false 保存されてない
3user.save # この行がないと,Alice,20歳というユーザーのデータベースに記録されません。
4user.persisted? # => true 保存されている
create
はnew
と同時にsave
を実行する。
ruby
1user = User.create(name: 'Barbie', age: 21)
2user.persisted? # => true 保存されてる。
save
の行がなくてもBarbie,21歳というユーザーがデータベースに記録されてる。
あとは好みですが,以上の仕組みを前提とすると,一旦newでオブジェクトを作成し,いろいろな作業の結果新しいオブジェクトを破棄したい場合は,save
しなければ,それで終了になります。
他方,create
でオブジェクトを作成した場合に,破棄しするときは,destroy
しなければ,ユーザーとしては記録されたままになります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。