Você está na página 1de 3

Criando o projeto: rails new nome Iniciando o servidor WEBRick integrado: rails server Console: rails console abre

um console, semelhante ao irb, dentro do contexto do projeto, inclusive permitindo consultas via ActiveRecord Generators: rails generate model nome Gera a classe que corresponde ao modelo e arquivos de migrao rails generate controller nome Gera a classe de controller rails generate scaffold nome_da_model [campo1:tipo campo2:tipo] Gera um conjunto com view, controller e model para o CRUD bsico, com os campos indicados rails generate migration nome Gera um arquivo de migrao do banco de dados. rake rake db:create cria o banco de dados rake:db:create:all cria tanto o banco de desenvolvimento quanto o de testes e de produo rake db:migrate migra o banco do projeto para a verso mais atual Active Record: (ORM padro do Rails) Classe com nome no singular, tabela com nome no plural. ClasseEmCamelCase, tabelas_com_underscore. Todas tabelas possuem um campo identidade, nomeado id. tabela.colum_names Exibe um array com os nomes das colunas da tabela. Campos unique devem ter essa restrio indicada como um validation. Trabalhando models via Active Record: (pode ser testado no console do rails, na pasta da aplicao) Model.column_names varivel = Model.new varivel.coluna = <valor> varivel.new_record? varivel.attributes varivel.save

Model.create(:coluna => valor, :coluna2 => valor) igual a: varivel = model.new varivel.coluna = valor varivel.save Model.count Model.find(:id (pode ser um array de ids pra trazer vrios registros) ou :all ou :first ou :last) No caso de vrios resultados, traz um array com os resultados. varivel = Model.find(2); Buscadores dinmicos do Active Record: Existem na forma de mtodos gerados em tempo de execuo e seguem o padro: Model.find_by_*(cond) Model.find_by_title(exemplo) Model.find_all_by_*(cond) Model.find_by_*_and_*(cond1, cond2) Model.find_all_by_*_and_*(cond1, cond2) Model.find_all_by_title_and_date(exemplo, 2011-08-15) Os mtodos find retornaram uma instncia de Model, enquanto os mtodos find_all retornam um array de objetos do mesmo tipo. Deleo de registros Model.delete(id) => Model.delete(6), deleta o registro de id 6 Model.delete([5,6,7]) Model.delete_all(condio) => Model.delete_all(created_at < 2011-01-01)

Model.delete_all() DELETA TODOS REGISTROS


Arrays: array[0] -> primeiro elemento do array, o mesmo que array.first (e podemos fazer, por exemplo, array.first.atributo) Temos tambm: array.last E para iterar pelo array temos: array.each { |variaveltemporaria| puts variaveltemporaria.atributo }

Associaes entre models (IMPORTANTE) As models so associadas de formas humanamente compreensveis, ento as associaes so criadas de forma descritiva, ao invs de usar apenas as chaves estrangeiras do SQL. As associaes bsicas so: has_one has_many

belongs_to has_many_and_belongs_to So bem compreensveis, n? Ento vamos a um exemplo: class User < ActiveRecord::Base has_one :profile end class Profile < ActiveRecord::Base belongs_to :user end

Você também pode gostar