2015-06-18 2 views
0

Я работаю с проектом, который требует, чтобы вложенные формы добавляли несколько клапанов в один заказ (заказ в этом случае называется rfq).Rails cocoon f.fields_for не работает

Я получаю эту ошибку:

ActionView::Template::Error (uninitialized constant Rfq::Valf): 
    48: </div> 
    49: 
    50: <div id="valves"> 
    51:  <%= f.fields_for :valves do |valve| %> 
    52:  <%= render 'valve_fields', f: valve %> 
    53:  <% end %> 
    54:  <%= link_to_add_association 'add valve', f, :valves %> 

Вот соответствующая часть формы частичной,

<%= form_for @rfq do |f| %> 
... 
    <div class="field"> 
    <%= f.label :application %><br> 
    <%= f.text_field :application %> 
    </div> 

    <div id="valves"> 
    <%= f.fields_for :valves do |valve| %> 
     <%= render 'valve_fields', f: valve %> 
    <% end %> 
     <%= link_to_add_association 'add valve', f, :valves %> 
    </div> 

    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

клапана полей парциальное:

<div class="nested-fields"> 
    <div class="field"> 
     <%= f.label :line %> 
     <%= f.text_field :productline %> 
    </div> 
    <%= link_to_remove_association "remove valve", f %> 
</div> 

Запрос предложений модель:

class Rfq < ActiveRecord::Base 
    has_many :valves 
    accepts_nested_attributes_for :valves, :allow_destroy => true 
    belongs_to :customer 
    has_paper_trail 
end 

Valve Модель:

class Valve < ActiveRecord::Base 
    belongs_to :rfq 
    has_paper_trail 
end 

Заранее спасибо

+0

Сообщите, пожалуйста, свой файл '_valve_fields.html.erb'. – jljohnstone

+0

@jljohnstone добавленные поля, частичные. – Suavocado

+0

Я ничего здесь не вижу, это явно неправильно. Если возможно, отправьте свои модели RFQ и Valve. – jljohnstone

ответ

1

Попробуйте указать ваше имя класса "клапан", как показано ниже.

class Rfq < ActiveRecord::Base 
    has_many :valves, :class_name => "Valve" 
    accepts_nested_attributes_for :valves, :allow_destroy => true 
    belongs_to :customer 
    has_paper_trail 
end 
+0

Это решило мою первоначальную проблему, но теперь у меня есть этот, Отсутствующие частичные rfqs/_valf_fields, application/_valf_fields с {: locale => [: en],: formats => [: html],: variantants => [],: handlers => [: erb,: builder,: raw,: ruby,: coffee, : JBuilder]}. Поиск: * "/ CRM_dev/rqm3/app/views" * "/usr/local/rvm/gems/ruby-2.1.5/gems/twitter-bootstrap-rails-3.2.0/app/views" Похоже, что он поменял клапан в valf по какой-то причине – Suavocado

+0

Я собираюсь сделать это отдельно, спасибо за помощь! – Suavocado

+0

Это объясняет, как Rails определяет, что такое единственная форма слов. В этом случае он использует «valf» как единственную форму «клапанов», которая на самом деле не такая, какая вы хотите. Взгляните на документацию [inflector documentation] (http://api.rubyonrails.org/classes/ActiveSupport/Inflector/Inflections.html), чтобы узнать, как исправить это. – jljohnstone

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