人生就是不斷學習,調整與更新持續前進。

Rails善用 Model層級來寫入資料與處理資料

  在 Rails 應用中,把 CRUD(創建、讀取、更新、刪除)邏輯移至 Model 層有幾個重要的優點: 關注點分離 Controller 專注於處理 HTTP 請求和回應 Model 負責業務邏輯和數據操作 View 只需關注資料的展示 這種分離讓程式碼更容易維護和測試

 

使用 Model create 寫入資料有幾個重要優勢:
1. 資料驗證與完整性:Model 層內建的驗證機制(validations)可以確保寫入的資料符合預設規則,例如必填欄位、格式驗證等,避免不合規的資料進入資料庫。
2. 商業邏輯集中管理:可以在 Model 中統一定義和管理資料處理的邏輯,如自動產生時間戳記、設定關聯關係、處理預設值等,確保資料一致性。
3. 回調機制(Callbacks):提供 before_create、after_create 等回調方法,允許在資料創建前後自動執行特定操作,例如發送通知、更新相關資料等。
4. 關聯資料處理:透過 ActiveRecord 的關聯機制,可以輕鬆處理複雜的資料關係,如一對多、多對多的資料創建。
這種方式不僅提高了程式碼的可維護性,也大幅降低了資料處理的錯誤風險。

 

 

Model:


	def self.create_post(params)
		# 可以延伸處理邏輯

		post = new(title: params[:title],
						    ...)

		if post.save
			post
		else
			false
		end
	end


Controller:


new_post = YourModel.create_post(params.require(:your_models).permit(:title))
...


符合 Fat Model, Skinny Controller 原則 Controller 程式碼變得更簡潔 複雜的邏輯都放在 Model 中處理 更容易理解和維護 這樣的架構使得程式碼: 更容易維護 更容易測試 更容易擴展 更好的程式碼組織 降低 bug 出現的機會 當你的應用程式成長時,這種結構會讓後續的開發和維護工作變得更加輕鬆。