【问题标题】:How to get a nested text_area to render properly如何让嵌套的 text_area 正确渲染
【发布时间】:2015-03-10 23:26:31
【问题描述】:

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

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

提交.rb

class Submit < ActiveRecord::Base
 has_and_belongs_to_many :questions
end

问题.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][]" %> 

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

【问题讨论】:

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


    【解决方案1】:

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

    ex.) 如果您的 Submit 模型中有 'text' 属性,您可以像这样为 text 属性输入表单。 &lt;%= f.text_area :text %&gt;

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

    参见)How do i include Rails join table field in the form?

    【讨论】:

    • 谢谢!我花了几天时间才回到这个问题。您的答案在链接上确实很有帮助。我很感激。
    猜你喜欢
    • 2021-02-07
    • 2018-11-26
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2018-01-02
    相关资源
    最近更新 更多