我在其中一个表单中遇到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()
您能帮忙或指导我如何解决此错误吗?
答案 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