如何设置 has_and_belongs_to_many 与作用域和别名 class 的关系?

How to setup has_and_belongs_to_many relationship with a scoped and aliased class?

我尝试将角色关联到一个组(用户)。 角色 class 不存在,我使用参数 class 的摘录(范围)。我从 apidock.com 获得灵感,但无法使用范围实现该示例。 我将关系设置如下:

##group.rb
  has_and_belongs_to_many :roles, :class_name => "Parameter", -> { where("parameters_list_id = ?", 13) }

##paramter.rb
  has_and_belongs_to_many :groups

当我添加用于确定关系范围的 lambda 时,出现以下错误:

group.rb:39: syntax error, unexpected '\n', expecting =>

你能帮我解决这个问题吗?

感谢您的帮助。

为清楚起见更改了参数的顺序和缩进:

has_and_belongs_to_many :roles,
                        -> { where("parameters_list_id = ?", 13) },
                        :class_name => "Parameter"

选项总是在参数列表的末尾。散列有时可以出现在中间,但它们必须由 {} 分隔。只有哈希是最后一个参数时方括号才可以省略。