2009-12-18 83 views
0

我正在構建一個項目管理應用程序,並且需要一些關於如何傳遞參數的幫助(我認爲這就是你怎麼說的)。這是我正在做的事情。收集額外的參數Ruby on Rails

我有一張名爲「提案」的表格,「提案」允許您爲每個提案創建多個概念。我有一個名爲「概念」的表格,用戶可以在每個「概念」上「評論」。我設置的方法是生成一個名爲concept_comments的表。

當前評論僅與概念相關,但我希望顯示該特定提案的所有概念的所有評論。我猜測他必須處理兩件事:

  1. 包括另一行以在創建評論時收集proposal_id。
  2. 將has_many:concept_comments分配給model/proposal.rb文件。
  3. 添加map.resources:proposals,:has_many =>:concept_comments。

不知道這是否正確,但這是在我的腦海。目前爲止我所做的只是在我的concept_comments表中創建了一個名爲proposal_id的列。這裏是我的「創造」 concept_comments_controller.rb代碼:

def create 
    @concept = Concept.find(params[:concept_id]) 
    @concept_comment = @concept.concept_comments.create!(params[:concept_comment]) 
    respond_to do |format| 
     format.html { redirect_to @concept } 
     format.js 
    end 
    end 

不太知道如何告訴它也收集PROPOSAL_ID。不知何故,我需要告訴它查看已傳入的concept_id,然後從概念表中提取proposal_id號碼,並將其傳遞給concept_comments表中的proposal_id。

我的想法是,我可以在所有具有proposal_id的條目上調用concept_comments表。

我甚至不確定這是否有道理。

回答

1

好 - 你可以通過在提案ID,但是,如果你已經有了一個concept_comment ID,你並不需要一個提案ID

@proposal_comments = ConceptComment.all(:joins => :concept, 
             :conditions => ["concepts.proposal_id = ?", 
             @concept_comment.concept.proposal_id]) 

凡@concept_comment是在意見中的一員行動控制器 - 對於收集操作,您需要傳入提案ID並將其替換爲@ concept_comment.concept.proposal_id

+0

是該代碼的問號部分還是我應該放在那裏的東西?另外,我可以從概念上看到你在說什麼,但白話是自從我新的東西以來殺死了我。你是說如果我把這段代碼放在我的控制器中,我可以從某處引用@proposal_comments? – bgadoci 2009-12-19 03:12:03

+0

是的,問號是一個綁定變量,例如, :conditions => [「foo =?」,bar]相當於:conditions =>「foo =#{bar}」,但是bar會被轉義。 如果你把它放在你的控制器中,你可以在你定義它之後從你的視圖和控制器訪問@proposal_comments。 – 2009-12-19 11:05:48

0

難道你不能只是遍歷所有給定的提案的概念,並收集他們的意見到一個大陣列,或者這是將發生數百萬次的事情?

+0

正如您可能會告訴我對所有這些都是新手。絕對不會發生數百萬次...永遠。我之前從未做過這些......我將如何着手實施你上面提到的內容? – bgadoci 2009-12-19 00:12:06

+0

你應該學習Ruby。 – 2009-12-19 15:12:05