2010-03-10 72 views
1

我有两个MVC会议和议程。会议可以有许多议程项目。将变量传递给new.html.rb页面

我试图设置这两个页面,以便我可以在show.html.rb会议页面上单击“创建新议程项目”。这个想法是,这会将用户重定向到传递会议ID的new.html.rb议程页面,并用会议ID预填充new.html.rb议程表单。

目前我有以下通过URL中的会议ID,但我不知道如何将它传递给窗体。

会议:show.html.rb:

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

去温柔,我很新。但很多预先感谢。

Christian Macedo。

回答

0

您的议程控制器中的new操作应该可以访问会议ID查询参数。就像:

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

好的,我试着添加这个,但是现在当点击一个新的议程项目的链接时我得到一个错误。 当你没有想到它时,你有一个零对象! 评估nil.build时发生错误 即使情况并非如此。我不明白第二行代码是如何获取我在URL中传递的会议的ID。 我觉得我非常想念这里的东西。或者只是简单的旧练习。 – Christian 2010-03-10 12:57:33

+0

尝试将其更改为'@agenda.meeting = Meeting.find(params [:id])'。会议ID在'params'散列中传递。有关详细信息,请参阅此处:http://guides.rubyonrails.org/routing.html#querystring-parameters – 2010-03-10 13:28:30

+0

这将不起作用,因为如果您在新的“日程”视图中,params [:id]会为您提供议程ID。如果Agenda是嵌套的Meeting会议资源,则可以使用params [:meeting_id]。此外,@ agenda.meetings没有意义,因为会议有很多议程,而不是相反。 – Karl 2010-03-11 06:15:06