Je configure l'héritage Single Table, en utilisant ContactEvent comme modèle que ContactEmail, ContactLetter et ContactCall hériteront tous.Comment créer le contrôleur pour un héritage de table unique dans Rails?
Mais je suis perplexe sur la façon de créer le routage et le contrôleur. Par exemple, supposons que je souhaite créer un nouvel événement ContactEvent avec le type E-mail.
Je voudrais une façon de faire ce qui suit:
new_contact_event_path(contact, email)
Cela prendrait l'exemple du modèle de contact et du modèle e-mail.
A l'intérieur, j'imagine la contact_event_controller aurait besoin de savoir ...
@contact_event.type = (params[:email]) # get the type based on what was passed in?
@contact_event.event_id = (params[:email]) #get the id for the correct class, in this case Email.id
pas sûr comment cela fonctionne ....
Comment pourrais-je réduire une partie de la redondance? La raison pour laquelle je vais dans ce sens est que seul un contrôleur a le code, en ce moment, j'ai beaucoup de duplication .... – Angela
La plupart des contrôleurs RESTFUL de base ressemblent exactement aux mêmes petites différences. Le modèle utilisé, message flash, etc. Si vous avez identifié trois ressources similaires, chacune mérite le droit à sa propre existence même si elles sont très similaires. Vous pouvez utiliser un plugin tel que resources_controller si vous souhaitez réduire cette duplication (et les rails normaux). Du point de vue des vues, vous pouvez extraire tout ce qui est générique dans un partiel partagé. Vous pouvez transmettre le ou les objets qui doivent être uniques en fonction de leur provenance. – tsdbrown
Hmm ... alors je suppose que je ne devrais même pas essayer de les consolider comme un héritage de table unique? – Angela