2016-09-23 70 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