Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'active_record'
- require 'mysql2' # or 'pg' or 'sqlite3'
- # Change the following to reflect your database settings
- ActiveRecord::Base.establish_connection(
- adapter: 'mysql2', # or 'postgresql' or 'sqlite3'
- host: 'localhost',
- database: 'your_database',
- username: 'your_username',
- password: 'your_password'
- )
- # Define your classes based on the database, as always
- class SomeClass < ActiveRecord::Base
- #blah, blah, blah
- end
- # Now do stuff with it
- puts SomeClass.find :all
- some_class = SomeClass.new
- require "active_record"
- # Based on http://www.jonathanleighton.com/articles/2011/awesome-active-record-bug-reports/
- # Run this script with `$ ruby my_script.rb`
- require 'sqlite3'
- require 'active_record'
- # Use `binding.pry` anywhere in this script for easy debugging
- require 'pry'
- # Connect to an in-memory sqlite3 database
- ActiveRecord::Base.establish_connection(
- adapter: 'sqlite3',
- database: ':memory:'
- )
- # Define a minimal database schema
- ActiveRecord::Schema.define do
- create_table :shows, force: true do |t|
- t.string :name
- end
- create_table :episodes, force: true do |t|
- t.string :name
- t.belongs_to :show, index: true
- end
- end
- # Define the models
- class Show < ActiveRecord::Base
- has_many :episodes, inverse_of: :show
- end
- class Episode < ActiveRecord::Base
- belongs_to :show, inverse_of: :episodes, required: true
- end
- # Create a few records...
- show = Show.create!(name: 'Big Bang Theory')
- first_episode = show.episodes.create!(name: 'Pilot')
- second_episode = show.episodes.create!(name: 'The Big Bran Hypothesis')
- episode_names = show.episodes.pluck(:name)
- puts "#{show.name} has #{show.episodes.size} episodes named #{episode_names.join(', ')}."
- # => Big Bang Theory has 2 episodes named Pilot, The Big Bran Hypothesis.
- # Use `binding.pry` here to experiment with this setup.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement