Argument Error: The scope body needs to be callable
The scope’s body needs to be wrapped in something callable like a Proc or Lambda: scope :visible, -> { where(:visible => true) } The reason for this is that it ensures the contents of the block is evaluated each time the scope is used.