Выбор сгруппированной коллекции
У меня проблемы с 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