2015-06-18 126 views
0

我正在處理一個項目,該項目需要嵌套窗體將多個閥門添加到單個訂單(在這種情況下訂單被稱爲rfq)。Rails cocoon f.fields_for not working

我得到這個錯誤:

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 

閥門型號:

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,應用程序/ _valf_fields {:locale => [:en],:formats => [:html],:variants => [],: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文檔](http://api.rubyonrails.org/classes/ActiveSupport/Inflector/Inflections.html),看看如何解決這個問題。 – jljohnstone