2015-03-03 22 views
0

我有兩個型號 「projectaim」 和 「溫柔」,關係Cyclobutyl:Ruby on Rails的,UrlHelper的ActionView的link_to新對象

class Projectaim < ActiveRecord::Base 
    has_many :tenders 
end 

...幾乎是標準控制器

...和WIEWS: 可以說主對象@projectaim是alrerady創建的。

在其編輯視圖edit.html.erb我必須做一個鏈接到不同的形式創建下屬@tender

<% @tender.projectaim_id = @projectaim.id %> 
<%=link_to "Add new tender", new_tender_path(@tender)%> 

能否請你告訴我如何參數化新嫩的動作(或視圖)基於模型保持關係?從技術上講,我需要在新招標活動中填寫tender.projectaim_id項目? thnx所有。

+0

嵌套資源是你的朋友。 – 2015-03-03 10:28:27

+0

感謝您的幫助,現在我正在研究嵌套資源。似乎可以理解。 – 2015-03-03 14:34:25

回答

0

在這種情況下,您應該使用nested resources

你的路由文件看起來像這樣

resources :projectaims do 
    resources :tenders 
end 

,你會作出這樣

<%=link_to "Add new tender", new_projectaim_tender_path(@projectaim, @tender)%> 

內部控制器的鏈接,你現在有PARAMS [:projectaim_id]除了PARAMS [:ID]。

+0

偉大的提示,非常感謝您的信息。現在我試圖用parial成功手動編輯控制器和視圖。請告訴我,有什麼方法可以重新生成它們,因爲params和form_for? Thakns。 – 2015-03-03 14:41:18

+0

我不知道我是否正確理解你的問題,但是如果你需要獲得form_for幫助器工作嵌套的資源,你可以看看這個SO問題http://stackoverflow.com/questions/2034700/form-for-with -nested-resources – Dabrorius 2015-03-03 16:42:05

+0

我很瞭解你,這篇文章很有價值。我必須手動編輯適當的控制器和視圖。原則是兩個對象應該在投標控制器(@projectaim和@tenders)中創建,然後我可以在form_for([@ projectaim,@tenders])的投標中使用它。我必須手動定製控制器參數,如果生成腳手架,可能沒有任何自動化。謝謝你的幫助。 – 2015-03-03 17:21:51