過程中重複的代碼,我是相當新的西納特拉(如< 6小時前),我在我的訊息注意到模式(和其他關鍵字太)西納特拉:CRUD
post '/pageant' do
pageant = Pageant.new(params)
if pageant.save
json_status 201, 'good'
Pageant.last.to_json
else
json_status 412, 'fail'
end
end
我還有其他模型:候選人,評委,類別,分數等。我覺得我會多次寫這個:獲取參數,嘗試保存,如果一切都有效(根據DataMapper),發送一個201或200並返回最後一個,否則拋出一個錯誤(json_status是引發錯誤狀態和錯誤代碼的方法)。 DELETE也會發生同樣的情況:「檢查是否刪除,如果刪除發送OK,如果不發送錯誤」...我如何幹這件事?我一定會喜歡這個幫助。
只是想評論說,根據您的整體基礎設施網絡的實例/工人,併發的(數你的數據庫和驅動程序),當去'Model.save'和'Model.last'時,可能會有競爭條件,如果另一個線程/進程在這些調用之間創建了一條新記錄,那麼'Model.last'可以返回其他記錄,這可能導致各種混淆或可能構成安全/隱私泄露。 –
+1,並添加到@AlistairIsrael IMO這幾乎到位。隨着應用程序的增長,您可能會對驗證失敗或其他類型的失敗的保存和備用流程產生限制。您可以將這些調用包裝在Model本身。 – ch4nd4n
@AlistairIsrael好的我會記住這一點......我想我聽說在Coursera課程中基於模式的軟件體系結構...... –