What does :: do?
ruby-on-rails
Solution
`::` is a scope resolution operator, it effectively means "in the namespace", so `ActiveRecord::Base` means "`Base`, in the namespace of `ActiveRecord`"
A constant being resolved outside of any namespace means exactly what it sounds like - a constant not in any namespace at all.
It's used in places where code may be ambiguous without it:
module Document
class Table # Represents a data table
def setup
Table # Refers to the Document::Table class
::Table # Refers to the furniture class
end
end
end
class Table # Represents furniture
end
Problem
I have some inherited code that I am modifying. However, I am seeing something strange(to me). I see some code like this: ``` ::User.find_by_email(params[:user][:email]).update_attributes(:mag => 1) ``` I have never seen something like this(I am new to Ruby on Rails). What does this do and why doesn't my `User.find_by_email(params[:user][:email]).update_attributes(:mag => 1)` work? The error says something about the `User` constant. I am using Rails 2.3.5 if that helps.