如何使嵌套的text_area正确呈现

时间:2015-03-10 23:26:32

标签: ruby-on-rails ruby twitter-bootstrap

我有一个名为submits的脚手架,它有一个用于创建新提交的表单。我还创建了一个名为问题的模型。我已经使用这个模型在提交表单中创建了不同的问题。我已经使用了一个连接表单并使用活动管理员来添加/编辑后端的问题。我收到了这个错误。

undefined method `submit[question_ids][]' for #<Submit id: nil, name: nil, created_at: nil, updated_at: nil>

submits.rb

class Submit < ActiveRecord::Base
 has_and_belongs_to_many :questions
end

question.rb

class Question < ActiveRecord::Base
 has_and_belongs_to_many :submits
end

subits / _form.html.erb

<%= form_for(@submit) do |f| %>
 <% if @submit.errors.any? %>
   <div id="error_explanation">
     <h2><%= pluralize(@submit.errors.count, "error") %> prohibited this submit from being saved:</h2>

  <ul>
  <% @submit.errors.full_messages.each do |message| %>
    <li><%= message %></li>
  <% end %>
  </ul>
</div>
  
<div class="field">
  <%= f.label :name,"Team Name" %><br>
  <%= f.text_field :name, class: "form-control"  %>
</div>

<% @questions.each do |question| %>
  <div class="field">
    <%= f.label(question.question)%>
    <%= f.text_area "submit[question_ids][]" %>
  </div>
<% end %> 

  <div class="actions">
   <%= f.submit "Apply", class: "btn btn-primary btn-lg" %>
  </div>
<% end %>

我猜我的错误在这里:

 <%= f.text_area "submit[question_ids][]" %> 

我只是不确定正确的语法是什么。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

对于Rails form_for输入表单,您需要:(whatever attribute),这应该在您的迁移文件中定义。

例如。)如果您在提交模型中有“text”属性,则可以使用文本属性的输入表单。 <%= f.text_area :text %>

但是在这种情况下,您的模型似乎有一个联接表,所以我认为您的联接表应该fields_for

cf。)How do i include Rails join table field in the form?