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