Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Mince parti trop vite. C'est juste parfait... J'ai donc écris le code ci dessous. *Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Views* Dans ma vue show , j'utilise la méthode @exoAlea.enunciated et j'enlève le helper. J'aurai donc une seule vue pour tous mes 1000 exercices. C'est top ! *Question 1 : Ma vue show.html.erb doit être dans le dossier app/exoAlea ? ou dans le dossier app/Exo_discriminant ? ou dans layout ?* *Controller * Comment se nomme ce controller ? exo_alea_controller ou exo_discriminant_controller ? Dans le contrôleur, te me dis tu n'a juste a changer la classe instanciée. Si je comprends bien c'est le controller qui se nomme exo_alea_controller. Dans ce controller, comment je change la classe instanciée ? je peux la nommée @exoAlea.enunciated ? *Question 2 : Est ce que le controller resemble donc à ça ?* class ExoAleaController ApplicationController before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_alea # GET /exo_alea.json def index @exo_alea= ExoAlea.all end # GET /exo_alea/1 # GET /exo_alea/1.json def show @exo_alea= ExoAlea.find(params[:id]) @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) end # GET /exo_alea/new def new @exo_alea= ExoAlea.new end # GET /exo_alea/1/edit def edit end # POST /exo_alea # POST /exo_alea.json def create @exo_alea= ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exo sumfraction was successfully created.' } format.json { render :show, status: :created, location: @exo_sumfraction } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # PATCH/PUT /exo_sumfractions/1 # PATCH/PUT /exo_sumfractions/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: 'Exo alea was successfully updated.' } format.json { render :show, status: :ok, location: @exo_alea} else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # DELETE /exo_alea/1 # DELETE /exo_alea/1.json def destroy @exo_alea.destroy respond_to do |format| format.html { redirect_to exo_alea_url, notice: 'Exo alea was successfully destroyed.' } format.json { head :no_content } end end private def set_exo_alea @exo_alea= ExoAlea.find(params[:id]) end def exo_alea_params params.require(:exo_alea).permit(:title, :text, :help, :string, :time) end end Merci infiniment. Le jeudi 16 avril 2015 07:04:57 UTC-5, Philippe Demaria a écrit : C'est juste parfait... J'ai donc écris le code ci dessous. *Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Question 1 : Donc si j'ai 1000 exos, j'aurais 1000 models
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Sans vouloir être rabbat joie, peut-être devriez-vous tout deux continuer cette discussion par mail privé, cela commence à devenir plus du pair programming qu'une discussion ouverte à mailer à des centaines de personnes ;) On Thursday, April 16, 2015 at 2:51:41 PM UTC+2, Philippe Demaria wrote: Bin non, mon pauvre, je le prends sur mes nuits et sur mes dimanchesEt sur ma famille aussi. J'adore essayer de dompter les ordinateurs. C'est juste par challenges intellectuels. Mais ce projet, je voudrais le présenter à plus grande échelle, et peut être fonder une association. Alors là, ce serait différent. mon mail professionnel est demaria@lbfogota.com javascript: . Le jeudi 16 avril 2015 07:43:11 UTC-5, Guirec Corbel a écrit : = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller .html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Je voulais dire que, dans le contrôleur, quand tu feras un ExoAlea.find(id) il te sortira une instance de la classe fille. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. On peut tester ça dimanche peut-être. Est-ce que tu fais ça à des fin professionnel. Si oui, on peut s'arranger pour que je te donne du support à plus long terme. Le 16 avril 2015 08:37, Philippe Demaria demaria@lfbogota.com a écrit : Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. = je viens de le faire. OK. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. = Mon dossier qui contient ma vue s'appelle exo_aleas. Ma vue est donc dans app/wiews/exos_aleas/show.html.erb. Jusque là, c'est bon. Une fois que l'exercice aléatoire est créé avec sa réponse, je ne le touche plus jamais ! Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller.html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fplataformatec%2Fresponderssa=Dsntz=1usg=AFQjCNHNNun_c1fE27LF-1IghU5aS-XDrg et https://github.com/hashrocket/decent_exposure . = on va y aller doucement. Quand j'aurais tout bien compris je verrai. Je vais déjà migrer de Mongo vers PostGrei. J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. -- -- 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 plus d'options, visitez le site https://groups.google.com/d/optout .
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Sinon, le code te parait bon ? -- -- 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 .
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
la question que je me pose est : pour 1000 exos, combien de controlle, de model et de vues ? Le jeudi 16 avril 2015 06:49:47 UTC-5, Guirec Corbel a écrit : Je pense qu'il faudrait que tu utilises l'action new pour afficher le questionnaire et que tu fasses la validation dans create. Il faut essayé de correspondre à une interface CRUD le plus possible. Si ces actions sont déjà prises, je pense que tu devrais créer un nouveau contrôleur. Le 15 avril 2015 21:11, Philippe Demaria demaria@lfbogota.com javascript: a écrit : Dans ma vue show, j'ai %= simple_form_for @exo_alea, :url = {:controller = exo_aleas, :action = validation}, defaults: { label: false } do |f| % Dans le cas utilisé danbs mon précédent post, je dois changer :url = {:controller = exo_aleas, :action = validation}. Je mets quoi à la place ? Merci. Le mercredi 15 avril 2015 19:05:26 UTC-5, Philippe Demaria a écrit : D'après ce que je comprends : Considérons que je veux créer 1000 exercices aléatoires *... eh oui !Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Question 1 : Donc si j'ai 1000 exos, j'aurais 1000 models specifiques ?* *Views* Dans ma vue show , j'utilise la méthode @exoAlea.enunciated et j'enlève le helper. J'aurai donc une seule vue pour tous mes 1000 exercices. C'est top ! *Question 2 : Ma vue show.html.erb doit être dans le dossier app/exoAlea ? ou dans le dossier app/Exo_discriminant ? ou dans layout ?* *Controller * Comment se nomme ce controller ? exo_alea_controller ou exo_discriminant_controller ? Dans le contrôleur, te me dis tu n'a juste a changer la classe instanciée. Si je comprends bien c'est le controller qui se nomme exo_alea_controller. Dans ce controller, comment je change la classe instanciée ? je peux la nommée @exoAlea.enunciated ? *Question 3 : J'ai un unique controller ou 1000 controllers ?* *Question 4 : Est ce que le controller resemble donc à ça ?* class ExoAleaController ApplicationController before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_alea # GET /exo_alea.json def index @exo_alea= ExoAlea.all end # GET /exo_alea/1 # GET /exo_alea/1.json def show @exo_alea= ExoAlea.find(params[:id]) @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) end # GET /exo_alea/new def new @exo_alea= ExoAlea.new end # GET /exo_alea/1/edit def edit end # POST /exo_alea # POST /exo_alea.json def create @exo_alea= ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exo sumfraction was successfully created.' } format.json { render :show, status: :created, location: @exo_sumfraction } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # PATCH/PUT /exo_sumfractions/1 # PATCH/PUT /exo_sumfractions/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: 'Exo alea was successfully updated.' } format.json { render :show, status: :ok, location: @exo_alea} else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # DELETE /exo_alea/1 # DELETE /exo_alea/1.json def destroy @exo_sumfraction.destroy respond_to do |format| format.html { redirect_to exo_alea_url, notice: 'Exo alea was successfully destroyed.' } format.json { head :no_content } end end private def set_exo_alea @exo_sumfraction = ExoSumfraction.find(params[:id]) end def exo_alea_params params.require(:exo_alea).permit(:title, :text, :help, :string, :time) end end
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
C'est juste parfait... J'ai donc écris le code ci dessous. *Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Question 1 : Donc si j'ai 1000 exos, j'aurais 1000 models specifiques ?* *Views* Dans ma vue show , j'utilise la méthode @exoAlea.enunciated et j'enlève le helper. J'aurai donc une seule vue pour tous mes 1000 exercices. C'est top ! *Question 2 : Ma vue show.html.erb doit être dans le dossier app/exoAlea ? ou dans le dossier app/Exo_discriminant ? ou dans layout ?* *Controller * Comment se nomme ce controller ? exo_alea_controller ou exo_discriminant_controller ? Dans le contrôleur, te me dis tu n'a juste a changer la classe instanciée. Si je comprends bien c'est le controller qui se nomme exo_alea_controller. Dans ce controller, comment je change la classe instanciée ? je peux la nommée @exoAlea.enunciated ? *Question 3 : J'ai un unique controller ou 1000 controllers ?* *Question 4 : Est ce que le controller resemble donc à ça ?* class ExoAleaController ApplicationController before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_alea # GET /exo_alea.json def index @exo_alea= ExoAlea.all end # GET /exo_alea/1 # GET /exo_alea/1.json def show @exo_alea= ExoAlea.find(params[:id]) @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) end # GET /exo_alea/new def new @exo_alea= ExoAlea.new end # GET /exo_alea/1/edit def edit end # POST /exo_alea # POST /exo_alea.json def create @exo_alea= ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exo sumfraction was successfully created.' } format.json { render :show, status: :created, location: @exo_sumfraction } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # PATCH/PUT /exo_sumfractions/1 # PATCH/PUT /exo_sumfractions/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: 'Exo alea was successfully updated.' } format.json { render :show, status: :ok, location: @exo_alea} else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # DELETE /exo_alea/1 # DELETE /exo_alea/1.json def destroy @exo_alea.destroy respond_to do |format| format.html { redirect_to exo_alea_url, notice: 'Exo alea was successfully destroyed.' } format.json { head :no_content } end end private def set_exo_alea @exo_alea= ExoAlea.find(params[:id]) end def exo_alea_params params.require(:exo_alea).permit(:title, :text, :help, :string, :time) end end Bon quand tu auras répondu à ces 4 questions, j'espère que tu m'auras donné la solution. Merci infiniment. Le jeudi 16 avril 2015 06:57:17 UTC-5, Guirec Corbel a écrit : 1 controlleur, une vue, 1 modèle de base et des modèles enfants pour la logique spécifique de chaque exercice. Le 16 avril 2015 07:56, Philippe Demaria demaria@lfbogota.com javascript: a écrit : la question que je me pose est : pour 1000 exos, combien de controlle, de model et de vues ? Le jeudi 16 avril 2015 06:49:47 UTC-5, Guirec Corbel a écrit : Je pense qu'il faudrait que tu utilises l'action new pour afficher le questionnaire et que tu fasses la validation dans create. Il faut essayé de correspondre à une interface CRUD le plus possible. Si ces actions sont déjà prises, je pense que tu devrais créer un nouveau contrôleur. Le 15 avril 2015 21:11, Philippe Demaria demaria@lfbogota.com a écrit : Dans ma vue show, j'ai %= simple_form_for @exo_alea, :url = {:controller = exo_aleas, :action = validation}, defaults: { label: false } do |f| % Dans le cas utilisé danbs mon précédent post, je dois
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
C'est juste parfait... J'ai donc écris le code ci dessous. *Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Views* Dans ma vue show , j'utilise la méthode @exoAlea.enunciated et j'enlève le helper. J'aurai donc une seule vue pour tous mes 1000 exercices. C'est top ! *Question 1 : Ma vue show.html.erb doit être dans le dossier app/exoAlea ? ou dans le dossier app/Exo_discriminant ? ou dans layout ?* *Controller * Comment se nomme ce controller ? exo_alea_controller ou exo_discriminant_controller ? Dans le contrôleur, te me dis tu n'a juste a changer la classe instanciée. Si je comprends bien c'est le controller qui se nomme exo_alea_controller. Dans ce controller, comment je change la classe instanciée ? je peux la nommée @exoAlea.enunciated ? *Question 2 : Est ce que le controller resemble donc à ça ?* class ExoAleaController ApplicationController before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_alea # GET /exo_alea.json def index @exo_alea= ExoAlea.all end # GET /exo_alea/1 # GET /exo_alea/1.json def show @exo_alea= ExoAlea.find(params[:id]) @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) end # GET /exo_alea/new def new @exo_alea= ExoAlea.new end # GET /exo_alea/1/edit def edit end # POST /exo_alea # POST /exo_alea.json def create @exo_alea= ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exo sumfraction was successfully created.' } format.json { render :show, status: :created, location: @exo_sumfraction } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # PATCH/PUT /exo_sumfractions/1 # PATCH/PUT /exo_sumfractions/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: 'Exo alea was successfully updated.' } format.json { render :show, status: :ok, location: @exo_alea} else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # DELETE /exo_alea/1 # DELETE /exo_alea/1.json def destroy @exo_alea.destroy respond_to do |format| format.html { redirect_to exo_alea_url, notice: 'Exo alea was successfully destroyed.' } format.json { head :no_content } end end private def set_exo_alea @exo_alea= ExoAlea.find(params[:id]) end def exo_alea_params params.require(:exo_alea).permit(:title, :text, :help, :string, :time) end end Bon quand tu auras répondu à ces 2 questions, j'espère que tu m'auras donné la solution. Merci infiniment. -- -- 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 .
Re: [RailsFr] Re: Débutant...Comment utiliser une vue pour plusieurs controllers ?
Tu n'as pas besoin de route pour un modèle. C'est la même que ton controlleur. ExoAlea.find(id) te donneras une instance ExoProdrelatif si tu as suivi le Single Table Inheritence. 2015-04-16 8:46 GMT-04:00 Philippe Demaria demaria.phili...@lfbogota.com: Mon exo qui englobe tous les autres : *model* : exo_alea.rb class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Float field :a, type: Float field :b, type: Float field :c, type: Float field :d, type: Float field :e, type: Float field :f, type: Float field :g, type: Float field :h, type: Float validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end *controller*: exo_aleas_controller.rb class ExoAleasController ApplicationController before_action :authenticate_teacher! before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_discriminants/new def new @exo_alea = ExoAlea.new end # GET /exo_discriminants/1/edit def edit end # POST /exo_discriminants # POST /exo_discriminants.json def create @exo_alea = ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exercice sur le exo_alea créé avec succès.' } format.json { render :show, status: :created, location: @exo_alea } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # GET /exo_aleas/1 # GET /exo_aleas/1.json def show @exo_aleas = ExoAlea.find(params[:id]) end # PATCH/PUT /exo_aleas/1 # PATCH/PUT /exo_aleas/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: L'exercice a été mis à jour avec succès} format.json { render :show, status: :ok, location: @exo_alea } else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end private # Use callbacks to share common setup or constraints between actions. def set_exo_alea @exo_alea = ExoAlea.find(params[:id]) end # Never trust parameters from the scary internet, only allow the white list through. def exo_alea_params params.require(:exo_alea).permit(:time, :title, :text, :help, :reponseStudent) end end *Ma vue *show.html.erb div class=row div class=large-12 columns title_exercise h4%= @exo_alea.title % /h4 h6%= fa_icon(barcode)% %= @exo_alea.id %%= fa_icon(clock-o)%%= @exo_alea.time % minutes/h6 hr /div div class=large-12 columns title_exercise %= @exo_alea.text % /div %= simple_form_for @exo_alea, defaults: { label: false } do |f| % div class=large-12 columns question_text div class=large-8 columns %= @exo_alea.enunciated % /div div class=large-4 columns div class=row collapse prefix-radius div class=small-3 columns span class=prefix$ A = $/span /div div class=small-9 columns %= f.input :reponseStudent, placeholder: Valeur de A % %= f.input :a, as: :hidden, input_html: {value: @a} % %= f.input :b, as: :hidden, input_html: {value: @b} % %= f.input :c, as: :hidden, input_html: {value: @c} % %= f.input :d, as: :hidden, input_html: {value: @d} % /div /div /div /div % if @error % div class=large-12 columns question_help div id=valid_help %= fa_icon(cogs, class: fa-3x) % %= @exo_alea.help %/div /div % end % div class=form-actions %= f.button :submit, Valider la réponse % /div % end % % if teacher_signed_in? % div class=large-12 columns %= link_to 'Modifier', edit_exo_alea_path(@exo_alea) % /div % end % /div *ma route :* routes.rb resources :exo_aleas, except: [ :index ] get '/exo_aleas/:id' = 'exo_aleas#show' ça ce sont mes fichiers qui englobe tous les exercices. Puis après, j'ai un type d'exercice particulier. Je viens faire un qui s'appelle exo_prodrelatifs, sur le produit de relatifs. J'e n'ai donc que le model à écrire. Le voici
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
+1 Le 16 avr. 2015 14:53, Olivier El Mekki oelme...@gmail.com a écrit : Sans vouloir être rabbat joie, peut-être devriez-vous tout deux continuer cette discussion par mail privé, cela commence à devenir plus du pair programming qu'une discussion ouverte à mailer à des centaines de personnes ;) On Thursday, April 16, 2015 at 2:51:41 PM UTC+2, Philippe Demaria wrote: Bin non, mon pauvre, je le prends sur mes nuits et sur mes dimanchesEt sur ma famille aussi. J'adore essayer de dompter les ordinateurs. C'est juste par challenges intellectuels. Mais ce projet, je voudrais le présenter à plus grande échelle, et peut être fonder une association. Alors là, ce serait différent. mon mail professionnel est demaria@lbfogota.com . Le jeudi 16 avril 2015 07:43:11 UTC-5, Guirec Corbel a écrit : = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller .html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Je voulais dire que, dans le contrôleur, quand tu feras un ExoAlea.find(id) il te sortira une instance de la classe fille. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. On peut tester ça dimanche peut-être. Est-ce que tu fais ça à des fin professionnel. Si oui, on peut s'arranger pour que je te donne du support à plus long terme. Le 16 avril 2015 08:37, Philippe Demaria demaria@lfbogota.com a écrit : Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. = je viens de le faire. OK. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. = Mon dossier qui contient ma vue s'appelle exo_aleas. Ma vue est donc dans app/wiews/exos_aleas/show.html.erb. Jusque là, c'est bon. Une fois que l'exercice aléatoire est créé avec sa réponse, je ne le touche plus jamais ! Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller.html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fplataformatec%2Fresponderssa=Dsntz=1usg=AFQjCNHNNun_c1fE27LF-1IghU5aS-XDrg et https://github.com/hashrocket/decent_exposure . = on va y aller doucement. Quand j'aurais tout bien compris je verrai. Je vais déjà migrer de Mongo vers PostGrei. J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. -- -- 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
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Olivier, t'as raison. Désolé. Le 16 avril 2015 08:53, Olivier El Mekki oelme...@gmail.com a écrit : Sans vouloir être rabbat joie, peut-être devriez-vous tout deux continuer cette discussion par mail privé, cela commence à devenir plus du pair programming qu'une discussion ouverte à mailer à des centaines de personnes ;) On Thursday, April 16, 2015 at 2:51:41 PM UTC+2, Philippe Demaria wrote: Bin non, mon pauvre, je le prends sur mes nuits et sur mes dimanchesEt sur ma famille aussi. J'adore essayer de dompter les ordinateurs. C'est juste par challenges intellectuels. Mais ce projet, je voudrais le présenter à plus grande échelle, et peut être fonder une association. Alors là, ce serait différent. mon mail professionnel est demaria@lbfogota.com . Le jeudi 16 avril 2015 07:43:11 UTC-5, Guirec Corbel a écrit : = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller .html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Je voulais dire que, dans le contrôleur, quand tu feras un ExoAlea.find(id) il te sortira une instance de la classe fille. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. On peut tester ça dimanche peut-être. Est-ce que tu fais ça à des fin professionnel. Si oui, on peut s'arranger pour que je te donne du support à plus long terme. Le 16 avril 2015 08:37, Philippe Demaria demaria@lfbogota.com a écrit : Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. = je viens de le faire. OK. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. = Mon dossier qui contient ma vue s'appelle exo_aleas. Ma vue est donc dans app/wiews/exos_aleas/show.html.erb. Jusque là, c'est bon. Une fois que l'exercice aléatoire est créé avec sa réponse, je ne le touche plus jamais ! Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller.html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fplataformatec%2Fresponderssa=Dsntz=1usg=AFQjCNHNNun_c1fE27LF-1IghU5aS-XDrg et https://github.com/hashrocket/decent_exposure . = on va y aller doucement. Quand j'aurais tout bien compris je verrai. Je vais déjà migrer de Mongo vers PostGrei. J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. -- -- 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
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. = je viens de le faire. OK. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. = Mon dossier qui contient ma vue s'appelle exo_aleas. Ma vue est donc dans app/wiews/exos_aleas/show.html.erb. Jusque là, c'est bon. Une fois que l'exercice aléatoire est créé avec sa réponse, je ne le touche plus jamais ! Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller.html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fplataformatec%2Fresponderssa=Dsntz=1usg=AFQjCNHNNun_c1fE27LF-1IghU5aS-XDrg et https://github.com/hashrocket/decent_exposure . = on va y aller doucement. Quand j'aurais tout bien compris je verrai. Je vais déjà migrer de Mongo vers PostGrei. J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. -- -- 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 .
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
= Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller .html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Je voulais dire que, dans le contrôleur, quand tu feras un ExoAlea.find(id) il te sortira une instance de la classe fille. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. On peut tester ça dimanche peut-être. Est-ce que tu fais ça à des fin professionnel. Si oui, on peut s'arranger pour que je te donne du support à plus long terme. Le 16 avril 2015 08:37, Philippe Demaria demaria.phili...@lfbogota.com a écrit : Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. = je viens de le faire. OK. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. = Mon dossier qui contient ma vue s'appelle exo_aleas. Ma vue est donc dans app/wiews/exos_aleas/show.html.erb. Jusque là, c'est bon. Une fois que l'exercice aléatoire est créé avec sa réponse, je ne le touche plus jamais ! Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller.html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fplataformatec%2Fresponderssa=Dsntz=1usg=AFQjCNHNNun_c1fE27LF-1IghU5aS-XDrg et https://github.com/hashrocket/decent_exposure . = on va y aller doucement. Quand j'aurais tout bien compris je verrai. Je vais déjà migrer de Mongo vers PostGrei. J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. -- -- 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 .
[RailsFr] Re: Débutant...Comment utiliser une vue pour plusieurs controllers ?
Mon exo qui englobe tous les autres : *model* : exo_alea.rb class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Float field :a, type: Float field :b, type: Float field :c, type: Float field :d, type: Float field :e, type: Float field :f, type: Float field :g, type: Float field :h, type: Float validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end *controller*: exo_aleas_controller.rb class ExoAleasController ApplicationController before_action :authenticate_teacher! before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_discriminants/new def new @exo_alea = ExoAlea.new end # GET /exo_discriminants/1/edit def edit end # POST /exo_discriminants # POST /exo_discriminants.json def create @exo_alea = ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exercice sur le exo_alea créé avec succès.' } format.json { render :show, status: :created, location: @exo_alea } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # GET /exo_aleas/1 # GET /exo_aleas/1.json def show @exo_aleas = ExoAlea.find(params[:id]) end # PATCH/PUT /exo_aleas/1 # PATCH/PUT /exo_aleas/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: L'exercice a été mis à jour avec succès} format.json { render :show, status: :ok, location: @exo_alea } else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end private # Use callbacks to share common setup or constraints between actions. def set_exo_alea @exo_alea = ExoAlea.find(params[:id]) end # Never trust parameters from the scary internet, only allow the white list through. def exo_alea_params params.require(:exo_alea).permit(:time, :title, :text, :help, :reponseStudent) end end *Ma vue *show.html.erb div class=row div class=large-12 columns title_exercise h4%= @exo_alea.title % /h4 h6%= fa_icon(barcode)% %= @exo_alea.id %%= fa_icon(clock-o)%%= @exo_alea.time % minutes/h6 hr /div div class=large-12 columns title_exercise %= @exo_alea.text % /div %= simple_form_for @exo_alea, defaults: { label: false } do |f| % div class=large-12 columns question_text div class=large-8 columns %= @exo_alea.enunciated % /div div class=large-4 columns div class=row collapse prefix-radius div class=small-3 columns span class=prefix$ A = $/span /div div class=small-9 columns %= f.input :reponseStudent, placeholder: Valeur de A % %= f.input :a, as: :hidden, input_html: {value: @a} % %= f.input :b, as: :hidden, input_html: {value: @b} % %= f.input :c, as: :hidden, input_html: {value: @c} % %= f.input :d, as: :hidden, input_html: {value: @d} % /div /div /div /div % if @error % div class=large-12 columns question_help div id=valid_help %= fa_icon(cogs, class: fa-3x) % %= @exo_alea.help %/div /div % end % div class=form-actions %= f.button :submit, Valider la réponse % /div % end % % if teacher_signed_in? % div class=large-12 columns %= link_to 'Modifier', edit_exo_alea_path(@exo_alea) % /div % end % /div *ma route :* routes.rb resources :exo_aleas, except: [ :index ] get '/exo_aleas/:id' = 'exo_aleas#show' ça ce sont mes fichiers qui englobe tous les exercices. Puis après, j'ai un type d'exercice particulier. Je viens faire un qui s'appelle exo_prodrelatifs, sur le produit de relatifs. J'e n'ai donc que le model à écrire. Le voici class ExoProdrelatif ExoAlea def result_valid? resultat = params[:exo_sumrelatif][:a].to_i * params[:exo_sumrelatif][:b].to_i * params[:exo_sumrelatif][:c].to_i * params[:exo_sumrelatif][:d].to_i if params[:exo_sumrelatif][:reponseStudent].to_i == resultat flash[:success] = Bonne réponse
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Oui bien sûr. C'est pour ça que j'ai mis mon mail pro. Le jeudi 16 avril 2015 07:53:46 UTC-5, Olivier El Mekki a écrit : Sans vouloir être rabbat joie, peut-être devriez-vous tout deux continuer cette discussion par mail privé, cela commence à devenir plus du pair programming qu'une discussion ouverte à mailer à des centaines de personnes ;) On Thursday, April 16, 2015 at 2:51:41 PM UTC+2, Philippe Demaria wrote: Bin non, mon pauvre, je le prends sur mes nuits et sur mes dimanchesEt sur ma famille aussi. J'adore essayer de dompter les ordinateurs. C'est juste par challenges intellectuels. Mais ce projet, je voudrais le présenter à plus grande échelle, et peut être fonder une association. Alors là, ce serait différent. mon mail professionnel est demaria@lbfogota.com . Le jeudi 16 avril 2015 07:43:11 UTC-5, Guirec Corbel a écrit : = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller .html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Je voulais dire que, dans le contrôleur, quand tu feras un ExoAlea.find(id) il te sortira une instance de la classe fille. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. On peut tester ça dimanche peut-être. Est-ce que tu fais ça à des fin professionnel. Si oui, on peut s'arranger pour que je te donne du support à plus long terme. Le 16 avril 2015 08:37, Philippe Demaria demaria@lfbogota.com a écrit : Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. = je viens de le faire. OK. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. = Mon dossier qui contient ma vue s'appelle exo_aleas. Ma vue est donc dans app/wiews/exos_aleas/show.html.erb. Jusque là, c'est bon. Une fois que l'exercice aléatoire est créé avec sa réponse, je ne le touche plus jamais ! Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller.html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fplataformatec%2Fresponderssa=Dsntz=1usg=AFQjCNHNNun_c1fE27LF-1IghU5aS-XDrg et https://github.com/hashrocket/decent_exposure . = on va y aller doucement. Quand j'aurais tout bien compris je verrai. Je vais déjà migrer de Mongo vers PostGrei. J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. -- -- 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
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Tu fais déjà énormémént Le jeudi 16 avril 2015 07:19:14 UTC-5, Guirec Corbel a écrit : Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders et https://github.com/hashrocket/decent_exposure . J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Le 16 avril 2015 08:06, Philippe Demaria demaria@lfbogota.com javascript: a écrit : Mince parti trop vite. C'est juste parfait... J'ai donc écris le code ci dessous. *Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Views* Dans ma vue show , j'utilise la méthode @exoAlea.enunciated et j'enlève le helper. J'aurai donc une seule vue pour tous mes 1000 exercices. C'est top ! *Question 1 : Ma vue show.html.erb doit être dans le dossier app/exoAlea ? ou dans le dossier app/Exo_discriminant ? ou dans layout ?* *Controller * Comment se nomme ce controller ? exo_alea_controller ou exo_discriminant_controller ? Dans le contrôleur, te me dis tu n'a juste a changer la classe instanciée. Si je comprends bien c'est le controller qui se nomme exo_alea_controller. Dans ce controller, comment je change la classe instanciée ? je peux la nommée @exoAlea.enunciated ? *Question 2 : Est ce que le controller resemble donc à ça ?* class ExoAleaController ApplicationController before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_alea # GET /exo_alea.json def index @exo_alea= ExoAlea.all end # GET /exo_alea/1 # GET /exo_alea/1.json def show @exo_alea= ExoAlea.find(params[:id]) @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) end # GET /exo_alea/new def new @exo_alea= ExoAlea.new end # GET /exo_alea/1/edit def edit end # POST /exo_alea # POST /exo_alea.json def create @exo_alea= ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exo sumfraction was successfully created.' } format.json { render :show, status: :created, location: @exo_sumfraction } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # PATCH/PUT /exo_sumfractions/1 # PATCH/PUT /exo_sumfractions/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: 'Exo alea was successfully updated.' } format.json { render :show, status: :ok, location: @exo_alea} else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # DELETE /exo_alea/1 # DELETE /exo_alea/1.json def destroy @exo_alea.destroy respond_to do |format| format.html { redirect_to exo_alea_url, notice: 'Exo
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Je pense qu'il faudrait que tu utilises l'action new pour afficher le questionnaire et que tu fasses la validation dans create. Il faut essayé de correspondre à une interface CRUD le plus possible. Si ces actions sont déjà prises, je pense que tu devrais créer un nouveau contrôleur. Le 15 avril 2015 21:11, Philippe Demaria demaria.phili...@lfbogota.com a écrit : Dans ma vue show, j'ai %= simple_form_for @exo_alea, :url = {:controller = exo_aleas, :action = validation}, defaults: { label: false } do |f| % Dans le cas utilisé danbs mon précédent post, je dois changer :url = {:controller = exo_aleas, :action = validation}. Je mets quoi à la place ? Merci. Le mercredi 15 avril 2015 19:05:26 UTC-5, Philippe Demaria a écrit : D'après ce que je comprends : Considérons que je veux créer 1000 exercices aléatoires *... eh oui !Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Question 1 : Donc si j'ai 1000 exos, j'aurais 1000 models specifiques ?* *Views* Dans ma vue show , j'utilise la méthode @exoAlea.enunciated et j'enlève le helper. J'aurai donc une seule vue pour tous mes 1000 exercices. C'est top ! *Question 2 : Ma vue show.html.erb doit être dans le dossier app/exoAlea ? ou dans le dossier app/Exo_discriminant ? ou dans layout ?* *Controller * Comment se nomme ce controller ? exo_alea_controller ou exo_discriminant_controller ? Dans le contrôleur, te me dis tu n'a juste a changer la classe instanciée. Si je comprends bien c'est le controller qui se nomme exo_alea_controller. Dans ce controller, comment je change la classe instanciée ? je peux la nommée @exoAlea.enunciated ? *Question 3 : J'ai un unique controller ou 1000 controllers ?* *Question 4 : Est ce que le controller resemble donc à ça ?* class ExoAleaController ApplicationController before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_alea # GET /exo_alea.json def index @exo_alea= ExoAlea.all end # GET /exo_alea/1 # GET /exo_alea/1.json def show @exo_alea= ExoAlea.find(params[:id]) @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) end # GET /exo_alea/new def new @exo_alea= ExoAlea.new end # GET /exo_alea/1/edit def edit end # POST /exo_alea # POST /exo_alea.json def create @exo_alea= ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exo sumfraction was successfully created.' } format.json { render :show, status: :created, location: @exo_sumfraction } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # PATCH/PUT /exo_sumfractions/1 # PATCH/PUT /exo_sumfractions/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: 'Exo alea was successfully updated.' } format.json { render :show, status: :ok, location: @exo_alea} else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # DELETE /exo_alea/1 # DELETE /exo_alea/1.json def destroy @exo_sumfraction.destroy respond_to do |format| format.html { redirect_to exo_alea_url, notice: 'Exo alea was successfully destroyed.' } format.json { head :no_content } end end private def set_exo_alea @exo_sumfraction = ExoSumfraction.find(params[:id]) end def exo_alea_params params.require(:exo_alea).permit(:title, :text, :help, :string, :time) end end Bon quand tu auras répondu à ces 4 questions, j'espère que tu m'auras donné la solution. Merci infiniment. -- -- Vous avez reçu ce message, car vous êtes abonné au groupe Railsfrance de
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
1 controlleur, une vue, 1 modèle de base et des modèles enfants pour la logique spécifique de chaque exercice. Le 16 avril 2015 07:56, Philippe Demaria demaria.phili...@lfbogota.com a écrit : la question que je me pose est : pour 1000 exos, combien de controlle, de model et de vues ? Le jeudi 16 avril 2015 06:49:47 UTC-5, Guirec Corbel a écrit : Je pense qu'il faudrait que tu utilises l'action new pour afficher le questionnaire et que tu fasses la validation dans create. Il faut essayé de correspondre à une interface CRUD le plus possible. Si ces actions sont déjà prises, je pense que tu devrais créer un nouveau contrôleur. Le 15 avril 2015 21:11, Philippe Demaria demaria@lfbogota.com a écrit : Dans ma vue show, j'ai %= simple_form_for @exo_alea, :url = {:controller = exo_aleas, :action = validation}, defaults: { label: false } do |f| % Dans le cas utilisé danbs mon précédent post, je dois changer :url = {:controller = exo_aleas, :action = validation}. Je mets quoi à la place ? Merci. Le mercredi 15 avril 2015 19:05:26 UTC-5, Philippe Demaria a écrit : D'après ce que je comprends : Considérons que je veux créer 1000 exercices aléatoires *... eh oui !Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Question 1 : Donc si j'ai 1000 exos, j'aurais 1000 models specifiques ?* *Views* Dans ma vue show , j'utilise la méthode @exoAlea.enunciated et j'enlève le helper. J'aurai donc une seule vue pour tous mes 1000 exercices. C'est top ! *Question 2 : Ma vue show.html.erb doit être dans le dossier app/exoAlea ? ou dans le dossier app/Exo_discriminant ? ou dans layout ?* *Controller * Comment se nomme ce controller ? exo_alea_controller ou exo_discriminant_controller ? Dans le contrôleur, te me dis tu n'a juste a changer la classe instanciée. Si je comprends bien c'est le controller qui se nomme exo_alea_controller. Dans ce controller, comment je change la classe instanciée ? je peux la nommée @exoAlea.enunciated ? *Question 3 : J'ai un unique controller ou 1000 controllers ?* *Question 4 : Est ce que le controller resemble donc à ça ?* class ExoAleaController ApplicationController before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_alea # GET /exo_alea.json def index @exo_alea= ExoAlea.all end # GET /exo_alea/1 # GET /exo_alea/1.json def show @exo_alea= ExoAlea.find(params[:id]) @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) end # GET /exo_alea/new def new @exo_alea= ExoAlea.new end # GET /exo_alea/1/edit def edit end # POST /exo_alea # POST /exo_alea.json def create @exo_alea= ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exo sumfraction was successfully created.' } format.json { render :show, status: :created, location: @exo_sumfraction } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # PATCH/PUT /exo_sumfractions/1 # PATCH/PUT /exo_sumfractions/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: 'Exo alea was successfully updated.' } format.json { render :show, status: :ok, location: @exo_alea} else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # DELETE /exo_alea/1 # DELETE /exo_alea/1.json def destroy @exo_sumfraction.destroy respond_to do |format| format.html { redirect_to exo_alea_url, notice: 'Exo alea was successfully destroyed.' } format.json { head :no_content } end end private def set_exo_alea @exo_sumfraction =
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders et https://github.com/hashrocket/decent_exposure . J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Le 16 avril 2015 08:06, Philippe Demaria demaria.phili...@lfbogota.com a écrit : Mince parti trop vite. C'est juste parfait... J'ai donc écris le code ci dessous. *Model :* je crée un model générique : class ExoAlea include Mongoid::Document include Mongoid::Timestamps field :title, type: String field :text, type: String field :help, type: String field :time, type: Integer field :reponseStudent, type: Integer field :a, type: Integer field :b, type: Integer field :c, type: Integer field :d, type: Integer validates :title, presence: true validates :text, presence: true validates :time, presence: true validates :help, presence: true validates :reponseStudent, presence: true, on: :validation validate :valid_answer, on: :update def valid_answer errors.add(:anwser, Réponse fausse) unless result_valid? end def result_valid? # une validation par défaut end def enunciated # un enoncé par défaut end end puis un model par exercice spécifique : class ExoDiscriminant ExoAlea def result_valid? # Validation spécifique end def enunciated # Énoncé spéfique end end *Views* Dans ma vue show , j'utilise la méthode @exoAlea.enunciated et j'enlève le helper. J'aurai donc une seule vue pour tous mes 1000 exercices. C'est top ! *Question 1 : Ma vue show.html.erb doit être dans le dossier app/exoAlea ? ou dans le dossier app/Exo_discriminant ? ou dans layout ?* *Controller * Comment se nomme ce controller ? exo_alea_controller ou exo_discriminant_controller ? Dans le contrôleur, te me dis tu n'a juste a changer la classe instanciée. Si je comprends bien c'est le controller qui se nomme exo_alea_controller. Dans ce controller, comment je change la classe instanciée ? je peux la nommée @exoAlea.enunciated ? *Question 2 : Est ce que le controller resemble donc à ça ?* class ExoAleaController ApplicationController before_action :set_exo_alea, only: [:show, :edit, :update, :destroy, :validation] # GET /exo_alea # GET /exo_alea.json def index @exo_alea= ExoAlea.all end # GET /exo_alea/1 # GET /exo_alea/1.json def show @exo_alea= ExoAlea.find(params[:id]) @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) end # GET /exo_alea/new def new @exo_alea= ExoAlea.new end # GET /exo_alea/1/edit def edit end # POST /exo_alea # POST /exo_alea.json def create @exo_alea= ExoAlea.new(exo_alea_params) respond_to do |format| if @exo_alea.save format.html { redirect_to @exo_alea, notice: 'Exo sumfraction was successfully created.' } format.json { render :show, status: :created, location: @exo_sumfraction } else format.html { render :new } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # PATCH/PUT /exo_sumfractions/1 # PATCH/PUT /exo_sumfractions/1.json def update respond_to do |format| if @exo_alea.update(exo_alea_params) format.html { redirect_to @exo_alea, notice: 'Exo alea was successfully updated.' } format.json { render :show, status: :ok, location: @exo_alea} else format.html { render :edit } format.json { render json: @exo_alea.errors, status: :unprocessable_entity } end end end # DELETE /exo_alea/1 # DELETE /exo_alea/1.json def destroy @exo_alea.destroy respond_to do |format| format.html { redirect_to exo_alea_url, notice: 'Exo alea was successfully destroyed.' } format.json { head :no_content } end end private def set_exo_alea @exo_alea=
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Bin non, mon pauvre, je le prends sur mes nuits et sur mes dimanchesEt sur ma famille aussi. J'adore essayer de dompter les ordinateurs. C'est juste par challenges intellectuels. Mais ce projet, je voudrais le présenter à plus grande échelle, et peut être fonder une association. Alors là, ce serait différent. mon mail professionnel est demaria.phili...@lbfogota.com . Le jeudi 16 avril 2015 07:43:11 UTC-5, Guirec Corbel a écrit : = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller .html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Je voulais dire que, dans le contrôleur, quand tu feras un ExoAlea.find(id) il te sortira une instance de la classe fille. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. On peut tester ça dimanche peut-être. Est-ce que tu fais ça à des fin professionnel. Si oui, on peut s'arranger pour que je te donne du support à plus long terme. Le 16 avril 2015 08:37, Philippe Demaria demaria@lfbogota.com javascript: a écrit : Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. = je viens de le faire. OK. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. = Mon dossier qui contient ma vue s'appelle exo_aleas. Ma vue est donc dans app/wiews/exos_aleas/show.html.erb. Jusque là, c'est bon. Une fois que l'exercice aléatoire est créé avec sa réponse, je ne le touche plus jamais ! Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller.html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fplataformatec%2Fresponderssa=Dsntz=1usg=AFQjCNHNNun_c1fE27LF-1IghU5aS-XDrg et https://github.com/hashrocket/decent_exposure . = on va y aller doucement. Quand j'aurais tout bien compris je verrai. Je vais déjà migrer de Mongo vers PostGrei. J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. -- -- 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 javascript: Pour résilier votre abonnement envoyez un e-mail à l'adresse railsfrance...@googlegroups.com javascript: --- 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 javascript:. 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 .
Re: [RailsFr] Débutant...Comment utiliser une vue pour plusieurs controllers ?
Je le redonne : demaria.phili...@lfbogota.com Le jeudi 16 avril 2015 07:58:39 UTC-5, Philippe Demaria a écrit : Oui bien sûr. C'est pour ça que j'ai mis mon mail pro. Le jeudi 16 avril 2015 07:53:46 UTC-5, Olivier El Mekki a écrit : Sans vouloir être rabbat joie, peut-être devriez-vous tout deux continuer cette discussion par mail privé, cela commence à devenir plus du pair programming qu'une discussion ouverte à mailer à des centaines de personnes ;) On Thursday, April 16, 2015 at 2:51:41 PM UTC+2, Philippe Demaria wrote: Bin non, mon pauvre, je le prends sur mes nuits et sur mes dimanchesEt sur ma famille aussi. J'adore essayer de dompter les ordinateurs. C'est juste par challenges intellectuels. Mais ce projet, je voudrais le présenter à plus grande échelle, et peut être fonder une association. Alors là, ce serait différent. mon mail professionnel est demaria@lbfogota.com . Le jeudi 16 avril 2015 07:43:11 UTC-5, Guirec Corbel a écrit : = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller .html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Je voulais dire que, dans le contrôleur, quand tu feras un ExoAlea.find(id) il te sortira une instance de la classe fille. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. On peut tester ça dimanche peut-être. Est-ce que tu fais ça à des fin professionnel. Si oui, on peut s'arranger pour que je te donne du support à plus long terme. Le 16 avril 2015 08:37, Philippe Demaria demaria@lfbogota.com a écrit : Ça commence à ressembler à quelque chose de bien. Je pense que tu bouger ceci : @a=rand(20)-rand(20) @b=rand(2..7) @c=rand(20)-rand(20) @d=rand(2..7) dans ton modèle. = je viens de le faire. OK. Normalement, ta vue sera dans app/views/ton_controlleur_au_pluriel/ton_action.html.erb. Pour ton contrôleur, ça dépend de ce que tu veux. D'après ce que je comprends tu à la possibilité de créer/modifier/supprimer des exercices. Pour moi, tu devrais créer un contrôleur pour ajouter une nouvelle réponse. Je crois que je créer un AnswersController. Tu vue sera donc dans app/views/answers/new.html.erb. = Mon dossier qui contient ma vue s'appelle exo_aleas. Ma vue est donc dans app/wiews/exos_aleas/show.html.erb. Jusque là, c'est bon. Une fois que l'exercice aléatoire est créé avec sa réponse, je ne le touche plus jamais ! Au niveau de l'instanciation, c'est le Single Table Inheritance (STI), comme dans le lien que je t'ai fourni. Si tu un classe ExoDisc qui hérite de Exo, tu peux faire Exo.find(id) et il va te retourner une classe de type ExoDisc. = Là tu me parles du controller. Or, je n'ai qu'un seul controller pour tous les exercices, c'est celui qui s'apelle exo_aleas_controller.html.erb qui hérite de ExoAleasController ApplicationController Dans mon modèle, je n'ai pas de Exo.find(id). Si tu veux simplifier ton controlleur, tu peux utiliser https://github.com/plataformatec/responders https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fplataformatec%2Fresponderssa=Dsntz=1usg=AFQjCNHNNun_c1fE27LF-1IghU5aS-XDrg et https://github.com/hashrocket/decent_exposure . = on va y aller doucement. Quand j'aurais tout bien compris je verrai. Je vais déjà migrer de Mongo vers PostGrei. J'aime bien aidé les gens quand c'est un problème que je connais bien. Je pense que la communauté Ruby est plus petite que celle de PHP mais très altruiste. Si tu étais proche, je serai probablement venu t'aider. Je ne voudrais pas abuser mais je fais souvent des vidéo conférence pour mon métier, si tu as un moment, c'est possible pour moi. Par HangOut, vive Google. -- -- 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