Ceci est peut-être une question de débutant, mais je ne suis pas sûr de ce que les termes à rechercher.Comment mettre en cache des objets de modèle ActiveRecord entre des redirections?
Dites que j'ai un objet CLIENT et que je veux envoyer un MESSAGE à ce client.
Ce que je ferais d'abord est d'ajouter une action SENDMESSAGE sur le contrôleur CUSTOMER, qui construit l'objet de message. (Supposons que c'est la bonne chose à faire?)
Dans ce cas, plutôt que d'envoyer réellement le message depuis cette action, je dois passer à la vue d'édition du MESSAGE pour capturer le texte du corps, etc.
La question: Je veux faire ceci sans persister l'objet. Je veux construire l'objet ici et ensuite le remettre à une autre vue pour l'achèvement.
def sendmessage
@message = Message.new
@message.title = 'WIBBLE'
@message.thecustomer = self
@message.save
respond_to do |format|
format.html { redirect_to(edit_message_path(@ message)) }
format.xml { render :xml => @ message }
end
end
Peut-être que ma question se résume à, ce qui est le « rails façon » aux paramètres du cache et des objets à travers les demandes et les multiples écrans.
Heureux d'être pointé vers les URLs Web comme je l'espère c'est simple.
Merci
Un grand merci John.Le contenu de la session dans un cookie ressemble à une décision de conception étrange! –
Puis-je également demander, utiliseriez-vous la session pour mettre en cache les actions du contrôleur. par exemple. mon action INDEX effectue une requête géniale basée sur les paramètres entrants. Je veux mettre en cache cette liste de résultats spécifique pour l'appel ultérieur à SENDMESSAGE. (Cela pourrait potentiellement signifier des milliers d'objets stockés dans le cookie de session donc deviner non.) Cependant, au moment de l'appel SENDMESSAGE, je n'ai pas tous les paramètres nécessaires pour reconstruire la liste CLIENT? Peut-être cache ces paramètres? –
Cela ressemble à la mise en cache des paramètres afin que vous puissiez reconstruire la requête serait le chemin à parcourir.Notez que j'ai dit que le magasin de session cookie est le Rails par défaut. L'option config.action_controller.session_store' dans 'environment.rb' vous permet d'utiliser la base de données pour le stockage de la session à la place –