2010-03-10 8 views
1

J'ai deux réunions MVC et Agenda. Une réunion peut avoir plusieurs points à l'ordre du jour.Passer une variable à la page new.html.rb

J'essaye de placer ces deux pages vers le haut de sorte que je puisse cliquer sur un 'Créer un nouvel ordre du jour' sur la page de réunion show.html.rb. L'idée étant que cela redirige l'utilisateur vers la nouvelle page de l'agenda .html.rb en lui transmettant l'identifiant de la réunion, et pré-remplit le formulaire de l'agenda new.html.rb avec l'ID de la réunion.

Actuellement, j'ai ce qui suit qui passe l'ID de la réunion dans l'URL, mais je n'ai aucune idée de la façon de le passer au formulaire.

Réunion: show.html.rb:

<%= link_to "Add Agenda Item", :action => 'new_agenda', :id => @meeting.id %> 

Aller douce, je suis très nouveau. Mais merci beaucoup d'avance.

Christian Macedo.

Répondre

0

L'action new de votre contrôleur Agenda doit avoir accès au paramètre de requête d'ID de réunion. Quelque chose comme:

def new 
    @agenda = Agenda.new 
    @agenda.meetings.build(Meeting.find(params[:id])) 
end 
+0

Ok, j'ai essayé d'ajouter ceci, mais je reçois maintenant une erreur en cliquant sur le lien pour un nouvel élément de l'ordre du jour. Vous avez un objet nul quand vous ne l'attendiez pas! L'erreur s'est produite lors de l'évaluation de nil.build Même si ce n'était pas le cas. Je ne comprends pas comment la deuxième ligne de code obtient l'identifiant de la réunion que j'ai passé dans l'URL. Je pense qu'il me manque beaucoup quelque chose ici. Ou tout simplement la vieille pratique. – Christian

+0

Essayez de le modifier à '@agenda.meeting = Meeting.find (params [: id]) '. L'identifiant de la réunion est passé dans le hachage 'params'. Voir ici pour plus de détails: http://guides.rubyonrails.org/routing.html#querystring-parameters –

+0

Cela ne fonctionnera pas, car params [: id] vous donnerait l'identifiant de l'agenda si vous étiez dans la nouvelle vue de l'agenda. Si Agenda est une ressource imbriquée de Meeting, vous pouvez cependant params [: meeting_id]. En outre, @ agenda.meetings n'a pas de sens parce que les réunions ont de nombreux agendas, et non l'inverse. – Karl

Questions connexes