Bonjour à tous,

J'aimerai avoir votre opinion sur le rôle des form objects, services objects et du controller. À votre avis, est-ce le form object qui va créer un service et l'appeler ou est-ce que le controller doit créer un service avec le form object en paramêtre? Je m'explique avec du code :

Est-ce que ça doit être ça :

class MyController < ApplicationController
  def create
    MyForm.new(params).save
  end
end

class MyForm
  def save
    Service.new(self).save
  end
end

ou

class MyController < ApplicationController
  def create
    form = MyForm.new(params)
    Service.new(form).save
  end
end


Autre question : Est-ce le rôle du controller de construire les modèle ou à l'un des deux autres. Imaginons un formulaire de création d'utilisateur avec un groupe. Est-ce que le "bon" code serait comme ceci :

class MyController < ApplicationController
  def create
    form = MyForm.new(user: user, group: group)
    form.attributes = params[:user]
    form.save
  end

   def user
        User.new # or find
   end

   def group
     Group.find(params[:group_id])
   end
end

ou est-ce le formulaire ou le service devrait savoir comment créer les associations. Est-ce le rôle d'un autre type d'objet?

C'est difficile de se retrouver dans ces concepts.

--
--
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 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
--- 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 [email protected].
Pour plus d'options, visitez le site https://groups.google.com/d/optout .

Répondre à