0
A
答えて
1
create
メソッドはその単純なブログ投稿を作成する責任がありますが、update
メソッドはそれを更新する必要があります。
def create
@blog = Blog.new(params[:blog])
if @blog.save
flash[:notice] = "Saved!"
redirect_to @blog
end
end
def update
@blog = Blog.find(params[:id])
if @blog.update_attributes(params[:blog])
flash[:notice] = "Saved!"
redirect_to @blog
end
end
セーブが成功するか失敗するかは、それ以外には何もできません。
0
create
とupdate
は類似していますが、文字通り同じものにすることは意味がありません。通常、それぞれに異なるフラッシュメッセージが必要になります。また、検証に失敗した場合はcreate
に、通常はnew
アクションをレンダリングするのが最善ですが、失敗した場合はupdate
になると、edit
アクションをレンダリングする可能性が高くなります。これらのわずかな違いは、通常、作成と新規のメソッドを別々にする方が簡単で読みやすいように十分です。
私は個人的にcreate
とupdate
のそれぞれに対してelse
句を持っています。ユーザーがまだエラーが表示され、それを修正しますが、この方法は私がすべてでcreate
とupdate
ビューを必要としないことができ
#create
else
render :action => "new"
end
#update
else
render :action => "edit"
end
:彼らは次のようになります。
save!
またはupdate_attributes!
を使用する場合、検証エラーが発生すると例外が発生します。これはどこかで救済する必要があります。レスキューしなかった場合、モデルの検証に失敗するたびに500エラーページが表示されます。だからこそ、より一般的ではない! save
およびupdate_attributes
の方法。
関連する問題
- 1. ブログの投稿をTwitterとFacebookに投稿する(カスタマイズあり)
- 2. iPhoneに簡単なスプレッドシートを作成して保存するライブラリや方法はありますか?
- 3. アンドロイドのTumblrブログに画像を投稿する必要があります
- 4. 概念簡単な検索ボックスを作成する方法を学ぶ必要があります
- 5. 簡単なブログ投稿機能
- 6. 作成と最も簡単な方法
- 7. DependencyObjectと同じスレッドでDependencySourceを作成する必要があります
- 8. Eclipseでモデル/ UMLを簡単に作成する方法はありますか?
- 9. CakePHP 2.0でajaxで簡単投票を作成する方法
- 10. Ruby言語では、認証が必要なWebページにデータを投稿する方法はありますか?
- 11. 作成日時、更新者、作成者などを保存する方法
- 12. HTMLテーブルをSQLファイルに保存する簡単な方法は?
- 13. rubyオブジェクトをコマンドラインに保存する簡単な方法は?
- 14. Tomcatに簡単なカスタム設定を保存する方法
- 15. 新しい投稿が投稿されたときにフォーラムスレッドを自動更新する方法は?
- 16. にXMLを解析して必要な要素を見つける簡単な方法はありますか?
- 17. Wordpress Plugin - 投稿に関する簡単なデータを保存する
- 18. OOP - 投稿を削除する必要がありますか?
- 19. プログラムによってWordPressにブログを投稿する方法
- 20. 投稿フォームを保護する方法
- 21. オブジェクトにリストがあるときにLINQで更新関数を作成する方法はありますか?
- 22. 簡単な自動更新クライアント(Windowsサービス)の作成方法は?
- 23. @Transactionalとログを結合する簡単な方法はありますか?
- 24. 投稿方法:デフォルトの更新URLから作成する、レール3
- 25. 外部RSSフィードを保存する最も簡単な方法
- 26. NSBezierPathを "サイズ変更"する簡単な方法はありますか?
- 27. Readlineに代わる簡単な方法はありますか?
- 28. CObListを簡単にソートする方法はありますか?
- 29. QProgressBarを簡単にカスタマイズする方法はありますか?
- 30. $ 1、$&などのすべての "マジック変数"をローカライズ(保存)する簡単な方法はありますか?
保存または保存する必要がありますか。 – Blankman
また、更新メソッドが失敗した場合、私は "new"をレンダリングする必要がありますか? – Blankman
@Blankman: 'create'メソッドで' save'を使います。操作が失敗した場合、2つのアクションの 'save'と' update_attributes'は両方ともfalseを返します。これにより、ユーザーは、別のアクションにリダイレクトするのではなく、フォームの間違いを訂正することができます。これはまた、if文に 'else'部分がない(そうすべきではない)理由です。 – vonconrad