2013-08-05 129 views
0

我在我的某个表单中遇到了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 

看一看的文档belongs_to的位置:http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/belongs_to

+0

什么是简单的错误。我还没有足够的经验来捕捉那些,但我猜...感谢您的帮助。 – Jarom

+0

@ user2543601,这些问题很容易忽略:) – vee