2010-04-12 111 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