2010-03-10 103 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