2016-09-23 3 views
0

В моем приложении rails я использую форму для затрат и вложенную форму для depend_costs.using options_for_select в вложенной форме rails @ class.associative_class?

Затраты на_сознание зависят от_сознания и зависимых_сознаний.

Это где я имею вопросы:

<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 части. Я не получаю метод dependency_category для #<ActiveRecord::Associations::CollectionProxy []> , и я не совсем уверен, куда двигаться дальше отсюда. потому что я хотел бы использовать эту форму для новых и правых методов, как это было в прошлом.

Разные файлы в случае, полезно: стоимость модели и 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_category является атрибутом CostDependency модели.

+0

Я принимаю это как ответ, потому что вы правы, но мне также нужно было вывести '@ cost.cost_dependency' перед' do'. – Avir94