2010-04-12 109 views
0

我正在研究一個基本的花園日誌應用程序,它由花園,植物和種植植物組成。每個用戶有一個或多個花園,植物是主要的定義,並且種植的植物可以被認爲是特定用戶花園中植物的一個實例。創建一個新的嵌套資源

在我的routes.rb文件我有以下幾點:

map.resources :gardens do |gardens| 
    gardens.resources :planted_plants, :has_many => :plant_log_entries, :collection => { :filter => :post, :choose_garden => :post} 
    gardens.resources :garden_log_entries 
end 

map.resources :plants 

檢索在用戶的花園planted_plants的名單時,這對我來說很有意義,但我想創建從一個planted_plant記錄植物指數。問題是,用戶可以有多個花園。我如何創建一個允許用戶指定應該使用哪個花園的planted_plant的新表單?

當前路線需要一個garden_id - 這對於檢索是有意義的,但我想提供它作爲創建的參數。

在此先感謝您的幫助!

回答

0

我想補充另一個(非嵌套)的路線,以允許訪問PlantedPlantsController#create動作,而不在URL中指定的garden_id:

map.resources :planted_plants, :only => :create 

這將允許您將表單張貼到/ planted_plants。至於表格本身,你可能需要這樣的東西:

<% form_for @planted_plant do |p| %> 
    <%=p.label "garden_id", "Garden" %> 
    <%=p.collection_select :garden_id, current_user.gardens, :id, :name %> 
    ... other fields ... 
<% end %> 
+0

這正是我最終做的 - 完美的作品!謝謝! – 2010-04-14 11:09:18