2013-05-14 4 views
0

Я использую Rails 3.2 и simple_form для создания приложения. Я пытаюсь, чтобы каждая вложенная модель отображала свои поля на другой вкладке с помощью Twitter Bootstrap. Из чтения некоторых вопросов переполнения стека люди, похоже, порекомендовали драгоценный камень кокона, который я тоже установил. Я пытаюсь следовать примеру на сайте кокона (https://github.com/nathanvda/cocoon), но по какой-то причине он не работает. (Может быть, проблема в моем переводе slim to standard 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 %> 

Отображается страница, и появляется текст с жестким кодом «Содержимое для ПРИЗМ». Но поля для призмы не делают.

Вся помощь очень ценится.

ответ

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

Я немного новичок, я не понимаю, о чем вы спрашиваете. –

+0

Я обновляю свой ответ и надеюсь, что это поможет – zolter

+0

Это было сделано. Благодаря! –

Смежные вопросы