我有一个正在运行的Rails项目。我要添加一个功能,在两个表之间添加辅助关系。他们有一个主联接表,而我要为另一个关系添加第二个:
在客户端中:
has_and_belongs_to_many :reports, :join_table => 'reports_clients'
has_and_belongs_to_many :managed_reports, :class => :reports, :join_table => 'client_report_manager'
在报告中
has_and_belongs_to_many :clients, :join_table => 'reports_clients'
has_and_belongs_to_many :client_managers, :class => :clients, :join_table => 'client_report_manager'
我遇到以上错误:'block in assert_valid_keys': Unknown key: class (ArgumentError)
至少我很确定那是错误所在……reports_clients
关系可以正常工作。我认为,新的client_report_manager
是打破它的东西。
答案 0 :(得分:2)
“在assert_valid_keys中阻止”:未知键:类(ArgumentError)
问题在于,class
在此处不是有效的密钥。它应该是class_name
。此外,class_name
的值应为该类的名称
has_and_belongs_to_many :managed_reports, :class_name => 'Report', :join_table => 'client_report_manager'
has_and_belongs_to_many :client_managers, :class_name => 'Client', :join_table => 'client_report_manager'