Rails 以Model來設計CRUD
在 Rails 應用中,把 CRUD(創建、讀取、更新、刪除)邏輯移至 Model 層有幾個重要的優點: 關注點分離 Controller 專注於處理 HTTP 請求和回應 Model 負責業務邏輯和數據操作 View 只需關注資料的展示 這種分離讓程式碼更容易維護和測試
Model:
def self.create_post(params)
post = new(params)
if post.save
post
else
false
end
end
def self.update_post(post, params)
if post.update(params)
post
else
post
end
end
Controller:
def create
new_post = MyBlog.create_post(params_post_permit)
if new_post
redirect_to backend_post_index_path
else
@my_blog = MyBlog.new(params_post_permit)
render :new
end
end
def update
@post = MyBlog.update_post(@my_blog, params_post_permit)
if @post.persisted? && [email protected]?
redirect_to backend_post_index_path
else
render :edit
end
end
符合 Fat Model, Skinny Controller 原則 Controller 程式碼變得更簡潔 複雜的邏輯都放在 Model 中處理 更容易理解和維護 這樣的架構使得程式碼: 更容易維護 更容易測試 更容易擴展 更好的程式碼組織 降低 bug 出現的機會 當你的應用程式成長時,這種結構會讓後續的開發和維護工作變得更加輕鬆。