static public Method

Base.find(*arguments)

Core method for finding resources. Used similarly to Active Record’s find method.

Arguments

The first argument is considered to be the scope of the query. That is, how many resources are returned from the request. It can be one of the following.

+:one+:Returns a single resource.
+:first+:Returns the first resource found.
+:all+:Returns every resource that matches the request.

Options

from:Sets the path or custom method that resources will be fetched from.
params:Sets query and prefix (nested URL) parameters.

Examples

Person.find(1)
# => GET /people/1.xml

Person.find(:all)
# => GET /people.xml

Person.find(:all, :params => { :title => "CEO" })
# => GET /people.xml?title=CEO

Person.find(:first, :from => :managers)
# => GET /people/managers.xml

Person.find(:all, :from => "/companies/1/people.xml")
# => GET /companies/1/people.xml

Person.find(:one, :from => :leader)
# => GET /people/leader.xml

Person.find(:all, :from => :developers, :params => { :language => 'ruby' })
# => GET /people/developers.xml?language=ruby

Person.find(:one, :from => "/companies/1/manager.xml")
# => GET /companies/1/manager.xml

StreetAddress.find(1, :params => { :person_id => 1 })
# => GET /people/1/street_addresses/1.xml

Source Code

# File active_resource/base.rb, line 395
def find(*arguments)
  scope   = arguments.slice!(0)
  options = arguments.slice!(0) || {}

  case scope
    when :all   then find_every(options)
    when :first then find_every(options).first
    when :one   then find_one(options)
    else             find_single(scope, options)
  end
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.