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.
::is a scope resolution operator, it effectively means “in the namespace”, soActiveRecord::Basemeans “Base, in the namespace ofActiveRecord“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: