У меня есть действие контроллера users/create
, что довольно сложно, отчасти потому, что он создает один из трех типов пользователей, каждый из которых имеет свои собственные записи и устанавливает требования. Представьте себе, например, форму, в которой могут быть созданы Worker
, a 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»?
я не понял ваш вопрос, вы были слишком общий характер. перемещение всей этой логики в вспомогательные методы поможет. ваши контроллеры должны оставаться стройными –