0

I try to associate Roles to a Group (of users). The Role class does not exist, I use an extract (a scope) of the Parameter class. I got inspiration from apidock.com, but cannot implement the example using a scope. I setup the relationship as follow:

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

##paramter.rb
  has_and_belongs_to_many :groups

When I add the lambda for scoping the relation, the following error raises:

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

Can you help me to solve this issue?

Thank you for your help.

user1185081
  • 1,898
  • 2
  • 21
  • 46

1 Answers1

0

Changed the order of parameters and indented for clarity:

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

Options always come in the end of the parameter list. Hashes sometimes can come in the middle, but then they have to be delimited by {}. The brackets can only be omitted if the hash is the last parameter.

Siim Liiser
  • 3,860
  • 11
  • 13