Skip to content

Instantly share code, notes, and snippets.

@bcamarda
Created July 17, 2012 03:21
Show Gist options
  • Save bcamarda/3126808 to your computer and use it in GitHub Desktop.
Save bcamarda/3126808 to your computer and use it in GitHub Desktop.
plan A
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
@sharksforcheap
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment