簡體   English   中英

不在Rails控制器中實現所有REST操作是錯誤的嗎?

[英]Is it wrong to not implement all REST actions in Rails controller?

假設我有一個控制用戶登錄和注銷的SessionsController ,但我真正需要的唯一操作是新的 (用於顯示登錄表單), 創建 (用於身份驗證和登錄)以及用於注銷用戶的destroy

如果我在控制器中只有這三個動作,或者我是否必須全部實現它們以使其正確RESTful,是否有任何問題?

第二個小問題。 有人說腳手架很糟糕,而且應該手工編寫代碼,但我發現它非常有用且節省時間。

是否可以使用腳手架,還是應該避免的邪惡?為什么?

僅創建要為該資源支持的RESTful操作是絕對可以的。 您不必定義所有7個操作。 事實上,我的大多數控制器都不使用全部7個動作。

是否可以使用腳手架,還是應該避免的邪惡?為什么?

內置的Rails腳手架主要用於在開始時幫助起飛。 出於幾個原因,我個人不會將它用於日常開發。

  • 當我想使用現有的應用程序時,它會生成一個CSS和布局文件
  • 它生成所有控制器動作(就像我說我通常不想要所有這些)
  • 它為我幾乎從不想要的每個動作創建XML格式
  • 當我需要“編輯”和“新”動作時,它不會將表單放在一個部分
  • 我有時會使用不同的測試庫(例如Shoulda或RSpec)

但是,我是腳手架加速開發的粉絲。 這就是為什么我創建了幾乎所有時間都使用的nifty_scaffold生成器 它沒有上面提到的問題。

僅實施您需要的那些操作沒有任何問題。 在Rails 2.3中,您也可以在路線中更加明確。

map.resources:foo,:only => [:create,:destroy,:new]

記住REST只有4個動詞GET,POST, UPDATE PUT和DELETE。 Rails中的編輯和新操作是GET動詞的解決方法,用於顯示編輯資源的表單。 索引操作是在不同資源上的GET,它與其他資源捆綁在一起,因為在應用程序開發上下文中將它放在同一個文件中更有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM