Ruby/ActiveRecord/Delete

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

Содержание

Account.destroy_all :artist => "Garth Brooks"

is the same as this:
DELETE FROM accounts WHERE artist = "Garth Brooks"



Delete a record with destroy

=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
account = Employee.find_by_Name("AAA")
account.destroy



delete the associated record from the database

=begin
create database Contact;
use Contact;
CREATE TABLE Employee (
   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"
   set_primary_key "Name"
end
 
account = Employee.find_by_Name("AAA")
puts account.destroy



find_by_sql

=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
 
Employee.find_by_sql("SELECT employee.* FROM employee")