Passer des paramètres de la vue au contrôleur
Je suis un peu un newbie question. Je suis en train de passer une variable de mon point de vue à mon contrôleur. Est-il de toute façon ma méthode dans mon contrôleur peut recevoir variables de mon point de vue?
Post view: show.html.erb:
....
<%=link_to "Add relationship", :method => :add_relationship(@rela) %>
Controller: post.controller.rb:
def add_relationship(rela)
@post = Post.find(params[:id])
if current_user.id == @post.user_id
@post.rel_current_id = rela.id
@post.save
redirect_to relationships_url
else
redirect_to posts_url, :notice => "FY!"
end
end
Merci d'avance 🙂
source d'informationauteur OXp1845
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter des informations à la params de hachage à droite à travers le link_to. Je ne suis pas sûr exactement ce que vous essayez de faire, mais j'ai fait quelque chose comme ça récemment pour ajouter le type de message que je voulais quand j'ai le lien vers le nouveau e-mail
Maintenant mes params ressemble:
Je peux accéder au type via les paramètres
Au lieu d'une chaîne, si vous passez dans la variable d'instance @rela, vous obtiendrez la object_id dans les params de hachage.
Par le commentaire ci-dessous, je vais ajouter mes itinéraires pour montrer pourquoi le chemin new_invoice_email_path travaux:
Lorsqu'une demande arrive, le contrôleur (et tous les appels de modèle) sera traité en premier, puis le code de la vue est traitée en dernier. La vue peut appeler des méthodes dans les aides, mais ne peut pas référence à des fonctions de retour dans le contrôleur.
Cependant, une fois qu'une page est affichée, vous pouvez soit publier des informations vers le contrôleur dans le cadre d'une nouvelle demande ou de l'utilisation d'ajax/JQuery (etc) pour faire un appel à une fonction de contrôle à distance.
T-il m'aider?