Несколько форм для одной и той же модели с разными ассоциациями в Ruby on Rails

Я строю управление проектами со следующими ассоциациями:

Project
  - Section
    - Milestone
      - Issue

Внутри app/views/section/show.html.erb — я хочу иметь вехи всего раздела и связанные с ним проблемы. Для каждой вехи я хочу иметь другую форму для создания новой связанной проблемы.

Вот как выглядит файл представления:

    <%= @section.title %>
    <% @milestones.each do |milestone| %>
    <div id="milestone">
    <%= milestone.info %>
    </div>
<% milestone.issues.each do |issue| %>
    <div id="issue">
         <p><%= issue.content %></p>
    </div>
<% end %>

В конце каждой вехи у меня есть следующая форма для добавления новой проблемы:

    <%= form_for([@project, milestone.issues.build], :url => project_section_milestone_issue_path ) do |f| %>
        <p>
            <%= f.text_field :content   %>
            <%= f.submit %>
        </p>
<% end %>

Это мои маршруты.rb:

resources :projects do 
  resources :sections do
    resources :milestones do 
      resources :issues
    end
  end
end

Форма не работает, сама страница (файл просмотра) не загружается и ошибки с неправильным URL-адресом пути. Я предполагаю, что что-то не так либо с маршрутами, либо с назначением в методе form_for.


person hrr    schedule 01.04.2013    source источник
comment
Попробуйте добавить @section и <%= form_for([@project, @section, milestone.issues.build], :url => project_section_milestone_issue_path ) do |f| %>   -  person Zippie    schedule 01.04.2013
comment
там написано No route matches {:controller=>"issues"} - есть идеи?   -  person hrr    schedule 01.04.2013


Ответы (1)


Проблема была с оператором form_for.

По подсказке @Zippie я изменил его на: <%= form_for([@project, @section, milestone, milestone.issues.build] ) do |f| %>, и это решило проблему.

person hrr    schedule 01.04.2013