Rails Active Record é o objeto / relacional Mapeamento camada (ORM) fornecido com Rails. Segue de perto o modelo ORM padrão, que é como se segue:

tabelas mapeadas para as classes,

linhas mapear a objetos e

mapear colunas de se opor atributos

Rails
registros ativos fornece uma interface e de ligação entre as tabelas em
um banco de dados relacional e do código do programa Ruby que manipula
os registros do banco de dados. Nomes de métodos de rubi são gerados automaticamente a partir dos nomes de campo de banco de dados tabelas.

Cada objeto Active Record tem CRUD (Criar, Ler, Atualizar e Excluir) métodos de acesso ao banco. Esta estratégia permite que projetos simples e mapeamentos simples entre as tabelas do banco de dados e objetos de aplicativos.
Traduzindo um modelo de domínio em SQL:

Traduzindo
um modelo de domínio em SQL
é geralmente simples, desde que você se
lembre que você tem que escrever Rails-friendly SQL. Em termos práticos, você tem que seguir algumas regras:

Cada entidade (como livro) recebe uma tabela no banco de dados chamado depois dele, mas no plural (livros).

Cada
tabela de correspondência de tal entidade tem um campo chamado id, que
contém um número inteiro único para cada registro inserido na tabela.

Dado entidade x e y entidade, se y entidade pertence a entidade x, então y tabela tem um campo chamado x_id.

A
maior parte dos campos em qualquer mesa de armazenar os valores para
propriedades simples que entidade (qualquer coisa que é um número ou uma
string).

Criação de arquivos Active Record:

Para
criar os arquivos do Active Record para nossas entidades para aplicação
de biblioteca, introduzida no capítulo anterior, emita o seguinte
comando a partir do nível mais alto do diretório do aplicativo.

Código:


C: \ ruby ​​\ biblioteca \> ruby ​​script / Book modelo gerar
C: \ ruby ​​\ biblioteca \> ruby ​​script / Assunto modelo gerar


Você está dizendo o gerador para criar modelos chamados de Livro, e Assunto para armazenar instâncias de livros e assuntos. Observe que você está capitalizando Livro e Assunto e usando a forma singular. Este é um paradigma Rails que você deve seguir sempre que criar um modelo.

Quando
você usa a ferramenta gerar, Rails cria o arquivo do modelo real que
contém todos os métodos originais para o modelo e as regras de negócio
definidas, um arquivo de teste de unidade para a realização de
test-driven development, um arquivo de dados de amostra (chamado
luminárias) para usar com os testes de unidade, e uma migração de Rails que torna a criação de tabelas e colunas fáceis.


Além de criar muitos outros arquivos e diretórios, isso irá criar arquivos nomeados book.rb e subject.rb
contendo um esqueleto de definição app/models diretório.

Conteúdo disponível em book.rb

Código:

Class Book < ActiveRecord::Base
end


Conteúdo disponível em subject.rb

Código:

class Subject < ActiveRecord::Base
end


Criar associações entre os modelos:

Quando você tem mais de um modelo em sua aplicação Rails, você precisa criar conexão entre esses modelos. Você pode fazer isso através de associações. Active Record suporta três tipos de associações:

um-para-um: Uma relação de um-para-um, quando existe um item tem exactamente um de outro item. Por exemplo, uma pessoa tem exatamente um aniversário ou um cão tem apenas um proprietário.

um-para-muitos: Uma relação um-para-muitos, quando existe um único objeto pode ser um membro de muitos outros objetos. Por exemplo, um indivíduo pode ter muitos livros.

muitos-para-muitos: Uma relação muitos-para-muitos existe quando o primeiro objeto está relacionado a um ou mais de um segundo objeto, eo segundo objeto está relacionado a um ou muitos do primeiro objeto.

Você indica essas associações, adicionando declarações aos seus modelos: has_one, has_many, belongs_to, e has_and_belongs_to_many.

Então, agora você precisa dizer ao Rails que os relacionamentos que você deseja estabelecer dentro do sistema de dados da biblioteca. Para fazer isso, modifique book.rb e subject.rb para olhar como este:

Código:

class Book < ActiveRecord::Base
  belongs_to :subject
end


Note acima eu usei sujeito singular, porque um livro pode pertencer a um único assunto.

Código:


class Subject < ActiveRecord::Base
  has_many :books
end


Note-se aqui que tenho usado livros plural, porque um sujeito pode ter vários livros.
Validações de execução:

A implementação de validações é feita num modelo Rails. Os dados que estão entrando no banco de dados é definido no modelo Rails real, por isso só faz sentido definir o que implica dados válidos no mesmo local.

Book.rb aberto e colocar as validações seguintes:

Código:

class Book < ActiveRecord::Base
  belongs_to :subject
  validates_presence_of :title
  validates_numericality_of :price, :message=>"Error Message"
end


validates_presence_of - protege "não nulo" campos contra a entrada do usuário ausente

alidates_numericality_of - impede que o utilizador introduzir dados não numéricos

Além das validações acima mencionadas, há outras validações comuns Entrada
Rails Quick Guide.


O que vem a seguir?

No próximo capítulo vamos aprender Rails Migration, que permite usar Ruby para definir mudanças em seu esquema de banco de dados, tornando possível a utilização de um sistema de controle de versão para manter as coisas sincronizadas com o código real.

Spoiler :