Friday, 15 August 2014

ruby - Map attributes over to object using an hash -



ruby - Map attributes over to object using an hash -

so have 2 model objects hold similar info yet have different attribute names them. i'll simplify list brevity , clarity. want create temporary object info, compare objects, , update 1 if of info has changed. i'm open suggestions how improve accomplish (please maintain in mind there lot more attributes i'm showing)

member object has attributes employeenumber, employeefirstname , employeelastname

censusitem object has attributes employee_id, employee_fn, employee_ln

i have has fields mapped on thought simplify this:

maps={ employeenumber: :employee_id, employeefirstname: :employee_fn, employeelastname: :employee_ln }

i thought loop them , assign them somehow, i'm not close:

def clean_member(censusitem, maps) tempmember=member.new maps.each |mname,ciname| tempmember.i[o]=censusitem.i[1] end homecoming tempmember end

feel i'm missing big, normal me;-) help appreciated!

mark

i believe should work:

def clean_member(censusitem, maps) tempmember=member.new maps.each |mname,ciname| tempmember.send("#{mname}=", censusitem.send(ciname)) end homecoming tempmember end

ruby activerecord ruby-on-rails-4

No comments:

Post a Comment