Выбор сгруппированной коллекции

У меня проблемы с group_collection_select в одной из моих форм.

Вот что говорит я об ошибке:

undefined method `assert_valid_keys' for :company:Symbol

Я некоторое время устранял неполадки, но я просто не могу получить это.

мой grouped_collection_code выглядит так:

<%= f.grouped_collection_select :subsector_id, Sector.all, :subsectors, :sector_name, :id, :subsector_name %>

Мои модели выглядят так:

class Sector < ActiveRecord::Base
  attr_accessible :sector_name
  has_many :companies
  has_many :subsectors
end

class Subsector < ActiveRecord::Base
  attr_accessible :sector_id, :subsector_name, :subsector_id
  belongs_to :sector, :company
end

class Company < ActiveRecord::Base
  belongs_to :sector
  has_many :subsectors, through: :sectors
end

Я не знаю, полезно ли это, но JavaScript, который у меня есть для формы, выглядит так:

jQuery ->
  subsectors = $('#company_subsector_id').html()
  $('#company_sector_id').change ->
    sector = $('#company_sector_id :selected').text()
    options = $(subsectors).filter("optgroup[label='#{sector}']").html()
    if options
      $('#company_subsector_id').html(options)
      $('#company_subsector_id').parent().show()
    else
      $('#company_subsector_id').empty()
      $('#company_subsector_id').parent().hide()

Можете ли вы помочь или указать, как я могу исправить эту ошибку?

1 ответ

Решение

Ваш belongs_to декларация вызывает эту проблему. Вы не можете иметь несколько имен в вашем belongs_to декларация. Каждая ассоциация должна быть определена отдельно. Пожалуйста, измените это на:

# Class Subsector < ActiveRecord::Base

belongs_to :sector
belongs_to :company

Ознакомьтесь с документацией для принадлежащих вам здесь: http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/belongs_to

Другие вопросы по тегам