J'ai un morceau de code ici que je pourrais vraiment utiliser une aide avec le refactoring. J'ai besoin des différentes méthodes pour ajouter des données relationnelles sous forme de rails. Le code est pris de http://railscasts.com/episodes/75-complex-forms-part-3, mon problème est que j'ai besoin d'avoir les méthodes à la fois le modèle matériel et le modèle de réponse. J'ai donc besoin du même code deux fois avec "matériaux" remplacés par "réponses".Refactor avec une programmation dynamique?
Il semble que cela devrait être résolu avec une programmation dynamique? Mais je n'ai aucune expérience avec ça.
Comment cela est-il résolu?
after_update :save_materials
after_update :save_answers
def new_material_attributes=(material_attributes)
material_attributes.each do |attributes|
materials.build(attributes)
end
end
def existing_material_attributes=(material_attributes)
materials.reject(&:new_record?).each do |material|
attributes = material_attributes[material.id.to_s]
if attributes
material.attributes = attributes
else
materials.delete(material)
end
end
end
def save_materials
materials.each do |material|
material.save(false)
end
end