Ruby on Rails - .where in ruby on rails- ruby on rails tutorial - rails guides - rails tutorial - ruby rails
- The where method is available on any ActiveRecord model and allows querying the database for a set of records matching the given criteria.
- The where method accepts a hash where the keys correspond to the column names on the table that the model represents.
Example
- we will use the given below model:
class Person < ActiveRecord::Base
#attribute :first_name, :string
#attribute :last_name, :string
end
Clicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
- Find all people with the first name of Sven:
people = Person.where(first_name: 'Sven')
people.to_sql # "SELECT * FROM people WHERE first_name='Sven'"
Clicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
- Find all people with the first name of Sven and last name of Schrodinger:
people = Person.where(first_name: 'Sven', last_name: 'Schrodinger')
people.to_sql # "SELECT * FROM people WHERE first_name='Sven' AND last_name='Schrodinger'"
Clicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
The above example, the sql output shows that records will only be returned both the first_name and the
query with OR condition
- Find records with first_name == 'Bruce' OR last_name == 'Wayne'
User.where('first_name = ? or last_name = ?', 'Bruce', 'Wayne')
# SELECT "users".* FROM "users" WHERE (first_name = 'Bruce' or last_name = 'Wayne')