我有一個users/create
控制器操作非常複雜,部分原因是它創建了三種類型的用戶之一,每個用戶都有自己的關聯記錄並設置了需求。想象一下,例如,可以創建Worker
,Company
和Contractor
的表單,並且每個表單都有自己的路由並根據成功與失敗的創建發送自己的電子郵件。跳過和連接控制器代碼部分
儘管最好的意圖,結果是相當數量如下:
if x
flash[:notice] = abc
redirect_to :action => "new", :layout => "notice"
elsif y
flash[:notice] = def
redirect_to :action => "new", :layout => "notice"
elsif z
flash[:notice] = ghi
redirect_to :action => "somethingelse", :layout => "else"
etc.
我現在有改變重複:action => 'new'
的要求又根據PARAMS值的另一目標。
有沒有辦法減少這種冗餘,實際上是說'跳到第2節'?
我不明白你的問題,你是太普通。將所有這些邏輯移至幫助方法將會有所幫助。你的控制器應該保持苗條 –