【发布时间】:2016-05-23 22:35:37
【问题描述】:
我确定我遗漏了一些简单的东西,但我正在生成一个项目列表,每个项目都有一个表格,以便为该特定项目添加新的试镜。表单未正确生成。
观点:
<% @projects.group_by(&:aasm_state).each do |state, projects| %>
<div class="project-column small-order-<%= state_priority(state) %>">
<div class="project-state spaced-out-2 project-<%= state %>"><%= state.titleize %></div>
<% for project in projects %>
<%= render partial: 'auditions/partials/dash_project_audition_form', locals: {project: project} %>
<% end %>
<% end %>
这是部分代码:
<button data-click="new-project-audition">+ Audition for <%= project.title %></button>
<%= form_for([project, @audition]) do |f| %>
... SNIP....
<% end %>
除了表格外,一切都有效。生成的每个表单都包含@projects 中最后一条记录的 ID。所以,例如最后一个项目是 ID 19,无论我点击哪个项目表单,它们都是 19。问题不在于部分,而在于我在form_for 中所做的事情,因为@部分内部的 987654325@ 生成正确的标题。
更新: 我重新启动了服务器,form_for 现在正在生成正确的路径和正确的 ID。
我在 form_for 循环中也有这一行,但它仍然是错误的。
<h3 class="section-head">New Audition for <%= project.title %></h3>
它正在为整个循环中的最后一个项目生成标题。
更新 2:停止处理页面重新加载,所以...现在甚至不知道该说什么。
【问题讨论】:
-
控制器中的@audition 设置是什么?
-
Audition.new -- 是否应该在循环中分配?
-
我也尝试将其作为本地
audition: @audition传递给局部
标签: ruby-on-rails ruby-on-rails-5