Première aperçu : le "then" ne te sert à rien dans tes if. Je ne savait
même que c'était possible. D'après ce que je comprend, tu as uniquement le
helper et la validation qui change. La première chose à faire, ça serait de
ramener ces deux éléments dans le modèle. Ta vue, ton controlleur et ton
helper seront donc tous les même.

Je pense que tu pourrais t'en sortir avec un héritage :
http://samurails.com/tutorial/single-table-inheritance-with-rails-4-part-1/.
Tu peux créer plusieurs modèles qui héritent de ta classe "Exercise" et qui
ré-implémente la validation et l'énoncé.

Le lien que je t'ai envoyé explique comment faire l'héritage avec Rails. Il
y a peut-être une meilleure solution mais c'est ce que je vois pour le
moment.

Le 15 avril 2015 09:52, Philippe Demaria <demaria.phili...@lfbogota.com> a
écrit :

> Et voilà.
>
>
> Le mercredi 15 avril 2015 08:48:58 UTC-5, Guirec Corbel a écrit :
>>
>> Un modèle, une vue, un contrôleur et un helper. Ça va nous aider à
>> comprendre.
>>
>> Le 15 avril 2015 09:46, Philippe Demaria <demaria....@lfbogota.com> a
>> écrit :
>>
>>> Merci pour ta réponse rapide.
>>> Quel exemple de code voudrais tu ?
>>>
>>> Le mercredi 15 avril 2015 08:44:20 UTC-5, Guirec Corbel a écrit :
>>>>
>>>> Peux-tu nous envoyer un exemple de ton code ? Je suis convaincu que ce
>>>> que tu veux peux être fait en 10 lignes de code (de moins de 80 caractères
>>>> par ligne).
>>>>
>>>> Le 15 avril 2015 09:41, Guirec Corbel <guirec...@gmail.com> a écrit :
>>>>
>>>>> Bonjour,
>>>>>
>>>>> Je pense que tu fais fausse route. Tu peux créer un seul model, avec
>>>>> une commande comme "rails g model Exercise question anwser". Tu peux
>>>>> également faire un seul contrôleur "ExercisesController" avec la méthode
>>>>> show. Ensuite, tu créer une seule vu avec la question. Tu ajoutes la route
>>>>> et tu peux ensuite accéder à ton exercice en allant sur
>>>>> "localhost:3000/exercise/1". Pour valider que la réponse fournis par la
>>>>> personne est la même que celle que tu souhaites, tu peux utiliser un 
>>>>> Custom
>>>>> Validator : http://guides.rubyonrails.org/active_record_validations.ht
>>>>> ml#performing-custom-validations .
>>>>>
>>>>> Est-ce que j'ai bien compris ta question ?
>>>>>
>>>>> Je te conseil vivement de faire un tutoriel comme
>>>>> http://railsforzombies.org/ avant de faire ta première application.
>>>>> Tu comprendras mieux le concept.
>>>>>
>>>>> Bonne chance,
>>>>> Guirec.
>>>>>
>>>>> Le 15 avril 2015 09:09, Philippe Demaria <demaria....@lfbogota.com> a
>>>>> écrit :
>>>>>
>>>>>> Bonjour à tous,
>>>>>>
>>>>>> je suis enseignant mais surtout débutant en Rails. Premier défit : je
>>>>>> vais essayer d'expliquer mon problème.
>>>>>>
>>>>>> -----
>>>>>> Je génère aléatoirement des exercices exo1, exo2, exo 3 et mes élèves
>>>>>> peuvent répondre à la question posée.
>>>>>>
>>>>>> Pour chaque exercice j'utilise un controller, un model, une vue show
>>>>>> et un helper.
>>>>>> Le model est les même exactement
>>>>>> la vue show aussi sauf les variable @exo...
>>>>>> les helpers sont différents
>>>>>> les controller sont identique même sauf la def validation qui valide
>>>>>> la réponse d'un élève et la variable @exo...
>>>>>>
>>>>>> Si je génère 100 exercices, il va donc me falloir 400 fichiers...Or
>>>>>> justement la logique voudrait que tout puisse être regroupé.
>>>>>>
>>>>>> J'ai bien pensé à créer un layout "exoaleatoire" et l'appeler dans
>>>>>> mes controller par layout "exoaleatoire" mais il faut quand même 100
>>>>>> controller, 100 model et 100 helper .
>>>>>> -----
>>>>>>
>>>>>>
>>>>>> Quelqu'un peut essayer de m'aider ?
>>>>>>
>>>>>> Dire qu'avec PHP je saurai le faire.... Mais bon faut progresser un
>>>>>> peu.....
>>>>>>
>>>>>> Merci.
>>>>>>
>>>>>>
>>>>>>
>>>>>>  --
>>>>>> --
>>>>>> Vous avez reçu ce message, car vous êtes abonné au groupe
>>>>>> "Railsfrance" de Google Groups.
>>>>>> Pour transmettre des messages à ce groupe, envoyez un e-mail à
>>>>>> l'adresse rails...@googlegroups.com
>>>>>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>>>>>> railsfrance...@googlegroups.com
>>>>>> ---
>>>>>> Vous recevez ce message, car vous êtes abonné au groupe
>>>>>> Google Groupes "Railsfrance".
>>>>>> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
>>>>>> concernant, envoyez un e-mail à l'adresse railsfrance...@
>>>>>> googlegroups.com.
>>>>>> Pour obtenir davantage d'options, consultez la page
>>>>>> https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>  --
>>> --
>>> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance"
>>> de Google Groups.
>>> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
>>> rails...@googlegroups.com
>>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>>> railsfrance...@googlegroups.com
>>> ---
>>> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
>>> "Railsfrance".
>>> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
>>> concernant, envoyez un e-mail à l'adresse railsfrance...@
>>> googlegroups.com.
>>> Pour obtenir davantage d'options, consultez la page
>>> https://groups.google.com/d/optout.
>>>
>>
>>  --
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> railsfrance@googlegroups.com
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> railsfrance-unsubscr...@googlegroups.com
> ---
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> "Railsfrance".
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> railsfrance+unsubscr...@googlegroups.com.
> Pour obtenir davantage d'options, consultez la page
> https://groups.google.com/d/optout.
>

-- 
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/d/optout .

Répondre à