【问题标题】:Rails simple_form Nested Model Fields Won't RenderRails simple_form 嵌套模型字段不会呈现
【发布时间】:2013-05-14 16:14:28
【问题描述】:

我正在使用 Rails 3.2 和 simple_form 构建应用程序。我试图让每个嵌套模型使用 Twitter Bootstrap 在不同的选项卡中显示它的字段。通过阅读一些堆栈溢出问题,人们似乎推荐了我也安装的茧宝石。我正在尝试按照 cocoon 网站 (https://github.com/nathanvda/cocoon) 上的示例进行操作,但由于某种原因它不起作用。 (在我将 slim 转换为标准 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 %>

页面呈现,我的硬编码文本“PRISM 内容”出现。但是,棱镜的领域没有。

非常感谢所有帮助。

【问题讨论】:

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


    【解决方案1】:

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

    更新: 例如,尝试在 :

    之后粘贴
    <p> Content for PRISM </p>
    

    这行代码:

    <% @super_request.prisms.build %>
    

    【讨论】:

    • 我是一个新手,我不明白你在问什么。
    • 嗨,@zolter,您介意解释一下为什么需要这样做吗?我有同样的问题,您的解决方案有效,但似乎这 1) 可能应该进入控制器?和 2) 应该在 Cocoon 站点/wiki 上提及,但我看不到任何提及必须建立关联,即使在示例项目中也是如此。
    • 我们需要构建对象,因为prisms 集合是空的。是的,最好的解决办法是把这段代码写在控制器里
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多