我正在开发一个基本的花园采伐应用程序,其中包括花园,植物和种植的植物。每个用户都有一个或多个花园,植物是主要定义,种植植物可以被视为特定用户花园中植物的实例。
在我的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
在检索用户花园中的plantted_plants列表时,这对我有意义,但我想从工厂索引创建一个plantted_plant记录。问题是,用户可以拥有多个花园。如何为plantted_plant创建一个新表单,允许用户指定应该使用哪个花园?
当前路线需要一个garden_id - 这对于检索是有意义的,但我想将其作为创建参数提供。
提前感谢您的帮助!
答案 0 :(得分: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 %>