2013-05-14 82 views
0

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

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

这里是我的模型:

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 %> 

页面呈现并显示我的硬编码文本“PRISM的内容”。但是,棱镜的领域不。

非常感谢所有帮助。

回答

2

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

更新: 例如,尝试粘贴后:

<p> Content for PRISM </p> 

这行代码:

<% @super_request.prisms.build %> 
+0

我有点新手,我不明白你在问什么。 – 2013-05-14 19:04:54

+0

我更新我的答案,并希望这是帮助 – zolter 2013-05-15 03:31:53

+0

这样做。谢谢! – 2013-05-15 14:27:18