Ruby/ActiveRecord/One to Many
Материал из Wiki.crossplatform.ru
Set up one to many map with has many
=begin drop database Contact; create database Contact; use Contact; CREATE TABLE Employee ( id int unsigned not null auto_increment primary key, Name VARCHAR(50), Phone VARCHAR(15), departmentId int ); CREATE TABLE Department( id int unsigned not null auto_increment primary key, Name VARCHAR(50), Phone VARCHAR(15) ); =end require "rubygems" require "activerecord" ActiveRecord::Base.establish_connection( :adapter => "mysql", :host => "localhost", :username => "root", :database => "Contact") class Employee < ActiveRecord::Base set_table_name "employee" belongs_to :department end class Department < ActiveRecord::Base set_table_name "department" has_many :children, :class_name => "Employee", :foreign_key => :departmentId end account = Employee.new account.Name = "AAA" account.save department = Department.find_or_create_by_Name("B") department.children << account department.save
Setup relation ship between one to many map with belongs_to
=begin drop database Contact; create database Contact; use Contact; CREATE TABLE Employee ( id int unsigned not null auto_increment primary key, Name VARCHAR(50), Phone VARCHAR(15), departmentId int ); CREATE TABLE Department( id int unsigned not null auto_increment primary key, Name VARCHAR(50), Phone VARCHAR(15) ); =end require "rubygems" require "activerecord" ActiveRecord::Base.establish_connection( :adapter => "mysql", :host => "localhost", :username => "root", :database => "Contact") class Employee < ActiveRecord::Base set_table_name "employee" belongs_to :department end class Department < ActiveRecord::Base set_table_name "department" end account = Employee.new account.Name = "AAA" account.save account = Employee.find_by_Name("AAA") puts account.destroy