【问题标题】:Multiple forms for the same model with different associations in Ruby on RailsRuby on Rails 中具有不同关联的同一模型的多个表单
【发布时间】:2013-04-01 18:56:21
【问题描述】:

我正在构建具有以下关联的项目管理:

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 方法中的分配有问题。

【问题讨论】:

  • 尝试添加@section&lt;%= form_for([@project, @section, milestone.issues.build], :url =&gt; project_section_milestone_issue_path ) do |f| %&gt;
  • 上面写着No route matches {:controller=&gt;"issues"} - 有什么想法吗?

标签: ruby-on-rails form-for nested-form-for


【解决方案1】:

问题出在 form_for 语句上。

在@Zippie 的提示下,我将其更改为:&lt;%= form_for([@project, @section, milestone, milestone.issues.build] ) do |f| %&gt; 并解决了问题。

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多