Created
April 27, 2011 10:11
-
-
Save unnitallman/944011 to your computer and use it in GitHub Desktop.
sqlite with activerecord outside rails
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'active_record' | |
ActiveRecord::Base.logger = Logger.new(STDERR) | |
ActiveRecord::Base.colorize_logging = false | |
ActiveRecord::Base.establish_connection( | |
:adapter => "sqlite3", | |
:dbfile => ":memory:" | |
) | |
ActiveRecord::Schema.define do | |
create_table :albums do |table| | |
table.column :title, :string | |
table.column :performer, :string | |
end | |
create_table :tracks do |table| | |
table.column :album_id, :integer | |
table.column :track_number, :integer | |
table.column :title, :string | |
end | |
end | |
class Album < ActiveRecord::Base | |
has_many :tracks | |
end | |
class Track < ActiveRecord::Base | |
belongs_to :album | |
end | |
album = Album.create(:title => 'Black and Blue', | |
:performer => 'The Rolling Stones') | |
album.tracks.create(:track_number => 1, :title => 'Hot Stuff') | |
album.tracks.create(:track_number => 2, :title => 'Hand Of Fate') | |
album.tracks.create(:track_number => 3, :title => 'Cherry Oh Baby ') | |
album.tracks.create(:track_number => 4, :title => 'Memory Motel ') | |
album.tracks.create(:track_number => 5, :title => 'Hey Negrita') | |
album.tracks.create(:track_number => 6, :title => 'Fool To Cry') | |
album.tracks.create(:track_number => 7, :title => 'Crazy Mama') | |
album.tracks.create(:track_number => 8, | |
:title => 'Melody (Inspiration By Billy Preston)') | |
album = Album.create(:title => 'Sticky Fingers', | |
:performer => 'The Rolling Stones') | |
album.tracks.create(:track_number => 1, :title => 'Brown Sugar') | |
album.tracks.create(:track_number => 2, :title => 'Sway') | |
album.tracks.create(:track_number => 3, :title => 'Wild Horses') | |
album.tracks.create(:track_number => 4, | |
:title => 'Can\'t You Hear Me Knocking') | |
album.tracks.create(:track_number => 5, :title => 'You Gotta Move') | |
album.tracks.create(:track_number => 6, :title => 'Bitch') | |
album.tracks.create(:track_number => 7, :title => 'I Got The Blues') | |
album.tracks.create(:track_number => 8, :title => 'Sister Morphine') | |
album.tracks.create(:track_number => 9, :title => 'Dead Flowers') | |
album.tracks.create(:track_number => 10, :title => 'Moonlight Mile') | |
puts Album.find(1).tracks.length | |
puts Album.find(2).tracks.length | |
puts Album.find_by_title('Sticky Fingers').title | |
puts Track.find_by_title('Fool To Cry').album_id |
handy.
very nice. You could change the last lines to:
Album.find_by_title('Sticky Fingers').tracks.each do |t|
puts "#{t.title}"
end
puts Track.find_by_title('Fool To Cry').album.title
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thx bro