Form_for循环播放

时间:2016-05-23 22:35:38

标签: ruby-on-rails ruby-on-rails-5

我确定我错过了一些简单的内容,但我生成了一个项目列表,每个项目都有一个表单,可以为该特定项目添加新的试听。表格没有正确生成。

观点:

<% @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岁。问题不在于部分,而是在我和#39之间。 ;在form_for中进行操作,因为+ Audition for <%= project.title %>位于部分内部,会生成正确的标题。

更新: 我重新启动了服务器,form_for现在正在使用正确的ID生成正确的路径。

我在form_for循环中也有这一行,但它仍然是错误的。 <h3 class="section-head">New Audition for <%= project.title %></h3>

它为整个循环中的最后一个项目生成标题。

更新2:停止处理页面重新加载,所以...甚至不确定现在要说什么。

1 个答案:

答案 0 :(得分:0)

当你执行form_for([project,@ audition])时,它会为

生成一个表单
  

项目:PROJECT_ID \试镜:audition_id

因此,您在所有表单中看到的ID可能属于@audition变量。你在哪里初始化它?

理想情况下应该按项目进行初始化,对吗?如果这有任何帮助,请告诉我。