Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does :: do?

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.

like image 346
Teej Avatar asked Jan 28 '11 14:01

Teej


People also ask

What does :: mean in rails?

The :: is a unary operator that allows: constants, instance methods and class methods defined within a class or module, to be accessed from anywhere outside the class or module.

What osteopathic means?

: a system of medical practice that emphasizes a holistic and comprehensive approach to patient care and utilizes the manipulation of musculoskeletal tissues along with other therapeutic measures (such as the use of drugs or surgery) to prevent and treat disease : osteopathic medicine.

What does a doctor do?

Physicians work to maintain, promote, and restore health by studying, diagnosing, and treating injuries and diseases. Physicians generally have six core skills: Patient care. Physicians have to provide compassionate, appropriate, and effective care to promote health and treat health problems in their patients.

What is an example of Osteopathic Medicine?

A Hands-On Approach DOs use osteopathic manipulative treatment (OMT) to help identify and correct the source of the underlying health concerns. They use this technique to help treat low back pain, as well as a variety of other health problems, including headaches and sinus issues.


1 Answers

:: 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
like image 79
Gareth Avatar answered Sep 20 '22 09:09

Gareth