Создание нового вложенного ресурса - PullRequest
0 голосов
/ 12 апреля 2010

Я работаю над основным приложением для ведения лесного хозяйства, которое состоит из садов, растений и посаженных растений. У каждого пользователя есть один или несколько садов, растения являются основными определениями, а посаженное растение можно рассматривать как экземпляр растения в саду конкретного пользователя.

В моем файле rout.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 - что имеет смысл для извлечения, но я бы хотел указать это как параметр для создания.

Заранее спасибо за любую помощь!

1 Ответ

0 голосов
/ 12 апреля 2010

Я бы добавил другой (не вложенный) маршрут, чтобы разрешить доступ к действию PlantedPlantsController#create без указания garden_id в URL:

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 %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...