我有一个名为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][]" %>
我只是不确定正确的语法是什么。有什么建议吗?
答案 0 :(得分:1)
对于Rails form_for输入表单,您需要:(whatever attribute)
,这应该在您的迁移文件中定义。
例如。)如果您在提交模型中有“text”属性,则可以使用文本属性的输入表单。 <%= f.text_area :text %>
但是在这种情况下,您的模型似乎有一个联接表,所以我认为您的联接表应该fields_for
。