Rails nested forms -> different treatment depending on value -


i have tricky question regarding nested forms. have following models:

  1. restaurant
  2. employees, in employees belongs_to restaurant.

i have 2 types of employees within employees model,

  1. managers
  2. staff

the managers designated via manager attribute in employees model, boolean.

when go edit list of employees each restaurant, through nested form,i.e:

<%= f.simple_fields :employees |f| %>   <%= render 'employee_fields', :f => f %> <% end %> 

my question: there way render different partial forms depending on type of employee? example, if current employee manager,

<%= render 'manager_fields', :f => f %>.  

otherwise, if current employee staff,

<%= render 'staff_fields', :f => f %>. 

yes, using ternary operator :

<%= render f.object.manager? ? 'manager_fields' : 'staff_fields' , :f => f %> 

if can change design, have better solution you. follows :

use rails enum feature.

add field desgination integer field in employee model using migration.

then inside model:

enum designation: [ :staff, :manager ] 

then storing in column designation, either manager ( value 1) or staff(value 0). inside view call <%= render f.object.desgination , :f => f %> . , should have _manager.html.erb , _staff.html.erb 2 partials.

and done!


Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - .htaccess mod_rewrite for dynamic url which has domain names -

Website Login Issue developed in magento -