2015-05-27 2 views
1

У меня этот код в контроллере, и он немного длинный. Может кто-нибудь наставит меня, как СУХОЙ это:Как высушить мой код в рельсах

def edit 
    @employee = Employee.where(id: params[:id]).first 
    unless @employee.profile 
     @employee.build_profile 
    end 
    unless @employee.current_address 
     @employee.build_current_address 
    end 
    unless @employee.permanent_address 
     @employee.build_permanent_address 
    end 
    unless @employee.emergency_contact 
     @employee.build_emergency_contact 
    end 
    unless @employee.attachments 
     @employee.attachments.build 
    end 
    end 
+1

защитное программирование часто плохо пахнет. Вы должны иметь полные допустимые записи в db, создать задачу rake и обновить все, если необходимо – apneadiving

ответ

2

Вы можете воспользоваться помощью модели, в этом случае,

в контроллере,

def edit 
    @employee = Employee.find(params[:id]) 
    @employee.create_association_instance 
end 

и в employee.rb модели создать новый метод,

def create_association_instance 
    self.build_profile unless self.profile  
    self.build_current_address unless self.current_address 
    self.build_permanent_address unless self.permanent_address  
    self.build_emergency_contact unless self.emergency_contact  
self.attachments.build unless self.attachments 
end 
Смежные вопросы