Grouped Collection选择

时间:2013-08-05 14:07:49

标签: javascript ruby-on-rails forms grouped-collection-select

我在其中一个表单中遇到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 个答案:

答案 0 :(得分:1)

您的belongs_to声明导致此问题。您的belongs_to声明中不能有多个名称。每个关联都需要单独定义。请将其更改为:

# Class Subsector < ActiveRecord::Base

belongs_to :sector
belongs_to :company

在这里查看belongs_to的文档:http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/belongs_to