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
else
render :action => "new"
end
#update
else
render :action => "edit"
end
用戶仍然可以看到該錯誤並糾正它,但這樣一來我就根本不需要create
和update
意見。
如果您要使用save!
或update_attributes!
任何驗證錯誤都會引發異常,您必須在某處解救出異常。如果您沒有解決問題,那麼您的用戶每次模型驗證失敗時都會收到500個錯誤頁面。這就是爲什麼它更傳統的使用非! save
和update_attributes
方法。
相關問題
- 1. Drupal:創建一個簡單的博客?
- 2. 創建一個動態更新博客
- 3. 上市博客文章,一個月
- 4. PHP有這樣一個更簡單和更整潔的方法嗎?
- 5. 博客文章創建界面
- 6. 如何創建一個簡單的XML文檔這樣一個
- 7. 更新CakePHP的一個單一的數據庫字段 - 應該是簡單
- 8. 博客引擎如何創建博客文章?
- 9. 如何爲我的自定義博客文章創建存檔?
- 10. 爲每個博客文章創建不同的html文件
- 11. 創建一個從RSS源更新的新聞博文
- 12. 我應該爲xml文件創建一個新的擴展嗎?
- 13. 我應該爲每個斷言創建一個新的測試方法嗎?
- 14. 的Android Studio項目:更簡單的方法來創建一個新的活動
- 15. 如何創建一個引導滑塊來展示最近的博客文章?
- 16. Rails - 如何創建一個顯示博客文章的動態主頁?
- 17. 簡單的方法來創建一個簡單的react + redux應用程序?
- 18. 應該編輯和創建表單是否一樣?
- 19. 顯示單個博客文章
- 20. 是否應該創建一個新的應用程序來處理博客的聯合?
- 21. 修改WordPress的最新博客文章
- 22. 在wordpress中的最新博客文章
- 23. Web服務應該同時創建並保存Web方法嗎?
- 24. 如何創建一個簡單的文章的設計,CSS和HTML5
- 25. 博客文章的單獨頁面
- 26. 最簡單的方法來創建一個模擬/存根一個FilterUserResponseEvent實例?
- 27. 用於編寫博客文章的GUI應該將數據提交到數據庫還是爲每篇文章創建一個文件?
- 28. WinForms - 這是保持一些數據最簡單的方法嗎?
- 29. iTunes Connect支持URL可以是一個簡單的Tumblr博客嗎?
- 30. 我應該創建一個新的類只是作爲方法的PARAM使用
我應該打電話保存還是保存! – Blankman 2010-12-17 04:07:20
另外,如果更新方法失敗,我應該如何渲染「新」? – Blankman 2010-12-17 04:10:05
@Blankman:在'create'方法中,使用'save'。如果操作失敗,兩個操作中的'save'和'update_attributes'都將返回false;這允許用戶糾正表單中的錯誤,而不是將它們重定向到另一個動作。這也是爲什麼if語句沒有(也不應該是)else的一部分。 – vonconrad 2010-12-17 05:13:10