Donc j'essaye de recréer le contrôle de version de GitHub pour les messages. J'ai trouvé un moyen de recréer un message original en utilisant le doublon ET une autre méthode pour créer un nouveau message basé sur l'original. Cool.Comment comparer deux éléments dans Ruby on Rails?
Mon problème est d'être en mesure d'afficher à la fois l'original et le nouveau sur la même page.
Ce que j'ai essayé jusqu'ici est de compter uniquement sur la méthode show d'avoir:
def show
@post = Post.find(params[:id])
end
Puis dans la vue ont sous la forme d'une case à cocher pour permettre à un utilisateur de sélectionner plusieurs messages, cliquez sur un soumettre, et une nouvelle page affiche affichant les deux côte à côte. De préférence montrant les différences entre les deux, mais c'est une liste de souhaits que je traite de ce premier.
En fait, ce que je pourrais simplement faire ?:
def other_show
@post = Post.where(params[:id])
end
J'ai également ajouté dans le statut de booléen pour aider à la vue pour marquer la case à cocher. Aurais-je besoin de mettre quelque chose dans la méthode other_show à propos de l'état?
Je ne comprends pas tout à fait ce que vous voulez accomplir. Mais si vous voulez deux messages sur une page, créez '@ var's pour les deux' Post's dans la méthode 'show' et mettez-les côte à côte dans la vue. –
En fait, c'est ce que je veux vraiment, c'est de voir les deux messages sur la même page. Idéalement, en voyant les différences entre eux. Vais-je faire deux vars dans le spectacle comme: old_post = Post.find (params [: id]) et puis new_post = Post.where (params [: id])? – Jake
Dans ce cas, vous aurez 2 messages identiques. Votre route 'show' ressemble à'/posts /: id', donc le contrôleur aura '': id', mais si vous voulez trouver un autre message et le comparer avec l'original, vous devez passer un autre param à router, par exemple. '/ posts /: id? compare_id =: autre_id' et dans la méthode show' @original = Post.find (params [: id]) 'et' @compared = Post.find (params [: compare_id]) ' –