在嵌套表单rails @ class.associative_class中使用options_for_select?

时间:2016-09-23 20:38:10

标签: ruby-on-rails ruby forms ruby-on-rails-4 nested-forms

在我的rails应用程序中,我使用了一个表单用于成本和一个用于dependent_costs的嵌套表单。

成本has_many dependent_costs和dependent_costs属于成本。

这是我遇到问题的地方:

<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

任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

@cost.cost_dependency

返回一个集合ActiveRecord::Associations::CollectionProxy,而不是CostDependency类的实例,因此出错。

您可能想写下以下内容吗?

@cost.cost_dependency.pluck(:dependency_category)

我认为,dependency_categoryCostDependency模型的属性。