Created
July 17, 2012 03:21
-
-
Save bcamarda/3126808 to your computer and use it in GitHub Desktop.
plan A
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' | |
require 'sqlite3' | |
ActiveRecord::Base.establish_connection :adapter => 'sqlite3', | |
:database => 'db/address_book.db' | |
ActiveRecord::Base.connection.execute <<-SQL | |
-- Address book schema | |
CREATE TABLE contacts ( | |
id INTEGER PRIMARY KEY AUTOINCREMENT, | |
first_name VARCHAR, | |
last_name VARCHAR, | |
birthday DATE, | |
email VARCHAR, | |
phone VARCHAR, | |
created_at DATETIME NOT NULL, | |
updated_at DATETIME NOT NULL | |
); | |
SQL | |
ActiveRecord::Base.connection.execute <<-SQL | |
CREATE TABLE addresses ( | |
id INTEGER PRIMARY KEY AUTOINCREMENT, | |
contact_id INTEGER NOT NULL, | |
street_address VARCHAR, | |
street_address2 VARCHAR, | |
city VARCHAR, | |
state VARCHAR, | |
country VARCHAR, | |
zip VARCHAR, | |
FOREIGN KEY (contact_id) REFERENCES contacts(id) | |
); | |
SQL |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
require 'active_record'
require 'sqlite3'
ActiveRecord::Base.establish_connection :adapter => 'sqlite3',
:database => 'brett_test.db'
class Contact < ActiveRecord::Base
has_many :addresses
end
class Address < ActiveRecord::Base
belongs_to :contact
end
why is this an empty array?
puts Contact.all(:joins => :addresses,
:conditions =>
{'contacts.id' => 'addresses.contact_id'}).inspect
['tony', 'dave', 'brett'].each do |name|
Contact.create(:first_name => name)
end
['11234', 'aaaaa', 'bbb'].each do |address|
Contact.find(1).addresses.create(:street_address => address)
end
ActiveRecord::Base.connection.execute <<-SQL
-- Address book schema
CREATE TABLE contacts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
first_name VARCHAR,
last_name VARCHAR,
birthday DATE,
email VARCHAR,
phone VARCHAR,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL
);
SQL
ActiveRecord::Base.connection.execute <<-SQL
CREATE TABLE addresses (
id INTEGER PRIMARY KEY AUTOINCREMENT,
contact_id INTEGER NOT NULL,
street_address VARCHAR,
street_address2 VARCHAR,
city VARCHAR,
state VARCHAR,
country VARCHAR,
zip VARCHAR,
FOREIGN KEY (contact_id) REFERENCES contacts(id)
);
SQL