2016-09-23 68 views
0

在我的Rails應用程序中,Im使用成本表單和dependent_costs的嵌套表單。使用options_for_select嵌套形式rails @ class.associative_class?

成本has_many dependent_costs和dependent_costs belongs_to成本。

這是我遇到的問題:

<div class="col-xs-12" id='dependency'> 
     <section id="new-dependency"> 
      <div class="col-xs-3 center-block"> 
       <%= f.fields_for :cost_dependencies, @cost.cost_dependency do |dependency| %> 
       <%= dependency.label :dependency_category, "Dependent Category" %> 
       <%= dependency.select :dependency_category, options_for_select(getAllCategories, :selected => @cost.cost_dependency.dependency_category.nil? ? 'Please Select' : @cost.cost_dependency.dependency_category), {}, {:class => 'form-control', id: "category-select"} %> 
      </div> 
     </section> 
</div> 

這是在options_for_select一部分。我收到#<ActiveRecord::Associations::CollectionProxy []> 的no方法dependency_category,我不太確定從這裏前進的位置。因爲我希望像以前那樣將這種形式用於新的和編輯方法。

其它文件的情況下,這是有幫助的: 模式的成本和cost_dependency:

class Cost < ApplicationRecord 
    has_many :cost_dependency 
    validates :per_job, numericality: true 
    validates :per_page, numericality: true 
    accepts_nested_attributes_for :cost_dependency 
end 

class CostDependency < ApplicationRecord 
    belongs_to :cost 
    validates :per_job, numericality: true 
    validates :per_page, numericality: true 
end 

任何幫助,將不勝感激。

謝謝。

+0

你錯誤的原因是'@ cost.cost_dependency'返回一個關聯對象數組(因爲'has_many'關係),所以你不能只爲數組調用'dependency_category'。 – vlasiak

回答

1
@cost.cost_dependency 

返回一個集合,ActiveRecord::Associations::CollectionProxy,不是不CostDependency類的實例,從而錯誤。

可能你的意思是寫下面的內容?

@cost.cost_dependency.pluck(:dependency_category) 

我假定,dependency_categoryCostDependency模型的一個屬性。

+0

我接受這個答案是因爲你是對的,但我也需要在'do'之前取出'@ cost.cost_dependency'。 – Avir94