を行う際に作成し、私は私の頭を少しスクラッチ作っ:作成の違い!そして、私はマイケル・ハートルチュートリアル、次の行をやっているリレーショナルオブジェクト
user.microposts.create!(content: content)
通常、!演算子は、呼び出されたオブジェクトを変更することを意味します。しかしこの場合、私は!ユーザー変数を変更し、データベースにマイクロポストを挿入しました。 !とは何ですか?この場合、演算子は?
を行う際に作成し、私は私の頭を少しスクラッチ作っ:作成の違い!そして、私はマイケル・ハートルチュートリアル、次の行をやっているリレーショナルオブジェクト
user.microposts.create!(content: content)
通常、!演算子は、呼び出されたオブジェクトを変更することを意味します。しかしこの場合、私は!ユーザー変数を変更し、データベースにマイクロポストを挿入しました。 !とは何ですか?この場合、演算子は?
バン演算子(save!
create!
)は、モデルが無効である場合、非強打(save
、create
は)ちょうどfalse
を返す例外が発生します。差
http://edgeguides.rubyonrails.org/active_record_validations.html#when-does-validation-happen-questionmarkここから はcreate
オブジェクトを返しながらcreate!
は、(検証または他のコールバックに起因するかもしれない)障害に例外が発生しますです。 create
メソッドでは、micropost
を取得して、エラーがあるかどうかを確認することができます(micropost.errors
)。あなたは例外を扱うのに対し、create!