У меня есть 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'
на еще одну цель, основанную на значении параметра.
Есть ли способ уменьшить эту избыточность, сказав, по сути, «Перейти к разделу 2»?