Rails simple_form嵌套模型字段不会渲染

时间:2013-05-14 16:14:28

标签: ruby-on-rails simple-form nested-forms cocoon-gem

我正在使用Rails 3.2和simple_form来构建应用程序。我正在尝试让每个嵌套模型使用Twitter Bootstrap在不同的选项卡中显示它的字段。从阅读一些堆栈溢出问题,人们似乎推荐我已安装的茧宝石。我正在尝试按照cocoon网站(https://github.com/nathanvda/cocoon)上的示例,但由于某种原因它无法正常工作。 (在我的标准Rails的翻译中可能会出现问题。)

这是我的代码,我正在尽力去除不相关的部分。

以下是我的模特:

class SuperRequest < ActiveRecord::Base
attr_accessible (all of my fields)
has_many :prisms
accepts_nested_attributes_for :prisms

class Prism < ActiveRecord::Base
attr_accessible :access, :business_client, :sla
belongs_to :super_request

我的表格如下:

<%= simple_form_for @super_request, :html => {:class => 'form-horizontal'} do |f| %>
<div class="tabbable"> <!-- Only required for left/right tabs -->
 <ul class="nav nav-tabs">
  <li class="active"><a href="#tab1" data-toggle="tab">Basic Information</a></li>
  <li><a href="#tab2" data-toggle="tab">Prism</a></li>
  <li><a href="#tab3" data-toggle="tab">Computer</a></li>
  <li><a href="#tab4" data-toggle="tab">Software</a></li>
  <li><a href="#tab5" data-toggle="tab">IM</a></li>
 </ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1">
  <%= f.input :ntid, label: 'NTID' %>
  (a lot more fields)
</div>

<div class="tab-pane" id="tab2">
  <p> Content for PRISM </p>
    <%= f.simple_fields_for :prisms do |prism| %>
      <%= render 'prism_fields', :f => prism %>
    <% end %>
</div>

我为棱镜领域创造了一个部分。以下是我的部分内容。

<%= .nested-fields %>
<%= f.inputs do %>
  <%= f.input :access %>
  <%= f.input :business_client %>
  <%= f.input :sla %>
<% end %>

页面呈现,我的硬编码文本“Content for PRISM”显示出来。但是,棱镜的领域却没有。

非常感谢所有帮助。

1 个答案:

答案 0 :(得分:2)

您是否构建了任何Prism个对象?
例如:
1)<% @super_request.prisms.build %>
或几个对象:
2)<% 3.times {@super_request.prisms.build} if @super_request.prisms.empty? %>

<强>更新 例如,尝试粘贴后:

<p> Content for PRISM </p>

这行代码:

<% @super_request.prisms.build %>