我有一个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节'?
我不明白你的问题,你是太普通。将所有这些逻辑移至帮助方法将会有所帮助。你的控制器应该保持苗条 –