Artigos com a Tag ‘Railties’

Rails 2.2: Atenção o application.rb foi renomeado

Por Carlos Brando em 19 de Novembro de 2008

Já faz um tempo que existe uma dicussão sobre o nome do arquivo application.rb. O motivo é que como ele corresponde à classe ApplicationController, deveria chamar-se application_controller.rb.
Bom, depois de muita discussão isto foi alterado. Particularmente eu gostei, mas muitos não gostaram do fato de isto sair já para o Rails 2.2 sem um aviso prévio. [...]

Rails 2.2: Tarefa db:migrate:redo agora aceita a versão da migration

Por Carlos Brando em 03 de Novembro de 2008

A tarefa rake db:migrate:redo tem se mostrado muito útil quando precisamos voltar e executar novamente a última migration criada. Agora esta tarefa ficou ainda mais útil, porque podemos utilizar a opção VERSION e informar qual migration queremos que seja reexecutada.
rake db:migrate:redo VERSION=20080725004631
Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.2 ou superior. [...]

Rails 2.2: Debug no console do Rails

Por Carlos Brando em 27 de Outubro de 2008

Da mesma forma como temos o script/server –debugger, agora também temos o script/console –debugger. Esta opção basicamente carrega a biblioteca ruby-debug ao iniciar o console.
É mais fácil usar esta opção do que executar um require ‘ruby-debug’ no console toda vez que precisar deste recurso.
Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.2 [...]

Edge Rails: Troca de biblioteca geradora de chaves secretas

Por Carlos Brando em 26 de Setembro de 2008

A classe Rails::SecretKeyGenerator, usada para gerar chaves secretas aleatórias como as usadas para armazenar a sessão do usuário em cookies, está sendo marcada para ser removida do Rails (Deprecate).
Em seu lugar o Rails passará a usar a classe ActiveSupport::SecureRandom que foi feita para o Ruby 1.9. A biblioteca SecureRandom faz a mesma coisa que a [...]

Edge Rails: Relacionamentos belongs_to automatizados

Por Carlos Brando em 17 de Setembro de 2008

Se você estiver usando o Edge Rails em seu projeto, tente executar o seguinte comando para criar um novo modelo:
./script/generate scaffold comment author:string body:text post:references
Note que estou informando que meus comentários terão uma referência a tabela posts. Ou em outras palavras que meus comentários pertencem (belongs_to) a um post. Agora veja o arquivo app/models/comment.rb gerado [...]

Edge Rails: FIXTURES_PATH

Por Carlos Brando em 05 de Setembro de 2008

As tarefas rake db:fixtures:load e rake db:fixtures:identify receberam um novo parâmetro opcional: FIXTURES_PATH.
rake db:fixtures:load FIXTURES_PATH=spec/fixtures
Desta forma você pode especificar um caminho alternativo para suas fixtures (por exemplo: spec/fixtures).

Edge Rails: threadsafe!

Por Carlos Brando em 04 de Setembro de 2008

Foi incluído no Rails um novo método de configuração para ligar o threaded mode.
config.threadsafe!
Ao executar este método em seu arquivo de configuração (normalmente no environments/production.rb), você estará fazendo com que as actions de um controller aceitem requisições concorrentes e múltiplas conexões com o banco de dados.
Ele também desliga o carregamento de dependencias após a inicialização. [...]

Edge Rails: Ligando e desligando carga de dependências

Por Carlos Brando em 03 de Setembro de 2008

Se você desejar permitir ou restringir a carga de dependências durante o ciclo de um requisição, pode fazer uso de um novo parâmetro de configuração.
config.dependency_loading = true
# ou
config.dependency_loading = false
Se dependency_loading for alterado para true (verdadeiro) ele permitirá que novas classes sejam carregadas durante uma requisição. Alterando para false (falso) este comportamento será desativado.
Se você [...]

Edge Rails: Fazendo o config.gem não carregar o gem

Por Carlos Brando em 02 de Setembro de 2008

Uma das novidades introduzidas no Rails 2.1 foi o config.gem, que nos permitia configurar de quais gems nosso projeto era dependente.
Com isto ganhamos diversas tarefas que facilitaram nosso trabalho, como o rake gems:install que instala todas as dependências automaticamente.
Mas tínhamos de tomar alguns cuidados ao configurar as dependências, porque em alguns casos o nome da [...]

Edge Rails: cache_classes agora estará ligado por padrão

Por Carlos Brando em 01 de Setembro de 2008

Nos arquivos de configuração do seu projeto provavelmente deve haver uma linha assim:
config.cache_classes = false
Esta linha informa ao Rails que ele não deve fazer cache do código de seu projeto, ou seja, para cada requisição feita ele carregará o código novamente. Embora isto torne a execução de seu código mais lenta, é ótimo para o [...]

Edge Rails: Rails.initialized?

Por Carlos Brando em 01 de Agosto de 2008

Novo método adicionado ao Rails:
Rails.initialized?
Ele informa se todos os processos de inicialização já foram finalizados. Sinceramente? Não sei onde eu usaria isto.

Edge Rails: Testando apenas arquivos uncommitteds no Git

Por Carlos Brando em 31 de Julho de 2008

Existe uma tarefa rake no Rails que pouca gente conhece mas que é muito útil:
rake test:uncommitted
Como o nome já diz esta tarefa roda os testes apenas dos arquivos que ainda não foram enviados (commit) para o subversion, ao invés de rodar todos os testes do projeto.
Eu costumava usar isto muito, mas quando mudei para Git [...]

Railties

Corrigido bug ao usar script/about em produção.

ActionPack

No Rails 2.2 o método ActionView::Base#render_file passa a ser privado.
O método auto_link agora também suporta o caracter ‘ (aspas simples) no meio da url.

Edge Rails: Suporte ao Thin melhorado no Rails

Por Carlos Brando em 15 de Julho de 2008

Traduzido do post “Living on the Edge (or what’s new in Edge Rails) #3“, porque não percebi esta alteração e não quero deixar de documentar.
O script/server agora verifica a disponibilidade do Thin e o usa. Muito conveniente se vocês estiver usando Thin no seu ambiente de produção (e quiser rodar o mesmo em desenvolvimento). Você [...]

Edge Rails: Criando testes de performace

Por Carlos Brando em 30 de Junho de 2008

Eu ainda não consegui testar direito esta nova funcionalidade, mas para a próxima versão do Rails teremos um novo generator para testes de performace.
Ao executar no terminal o seguinte comando:
[carlosbrando:edge]$ ./script/generate performance_test Login
exists test/performance/
create test/performance/login_test.rb
Será criado um arquivo chamado test/performance/login_test.rb. Veja [...]

Edge Rails: Está chegando o fim dos plugins?

Por Carlos Brando em 12 de Junho de 2008

No Rails 2.1, gems passaram a poder ser usadas como plugins em nossos projetos. Para isto bastava criar uma pasta chamada rails dentro do projeto do gem e incluir um arquivo init.rb.
Isto acrescentou um leque de novidades como config.gem e rake:gems. Mas isto nos faz pensar, já que agora eu posso carregar gems dentro da [...]

Edge Rails: StringQuestioneer renomeado para StringInquirer

Por Carlos Brando em 06 de Junho de 2008

Hoje de manhã eu falei desta nova classe no Rails, e comentei que estavam querendo mudar o seu nome. Pois bem, isto aconteceu mesmo!
Agora a classe se chama StringInquirer. Além disso ela também foi incluída no namespace ActiveSupport.
Vejam o mesmo exemplo usado no artigo anterior, mas adaptado para funcionar com estas alterações:
class Cliente
def [...]

Edge Rails: StringQuestioneer

Por Carlos Brando em 06 de Junho de 2008

David acabou de incluir uma novidade interessante no Rails, a classe StringQuestioneer (alguns estão tentando mudar este nome para StringInquirer, mas por enquanto é StringQuestioneer mesmo).
Para entender como funciona, vou ter de explicar usando alguns exemplos. Vamos criar uma classe chamada Cliente que contém um método que retorna o status do cliente:
class Cliente
def [...]

Edge Rails: Nova mensagem ao iniciar o servidor

Por Carlos Brando em 30 de Maio de 2008

Ouve uma pequena alteração na mensagem de inicio do Rails, agora ela mostra também qual é a versão do Rails que está sendo carregada:
Rails 2.0.991 application starting on http://0.0.0.0:3000
Para quem trabalha em vários projetos ao mesmo tempo como eu, isto é muito útil.

Edge Rails: Rails.version

Por Carlos Brando em 29 de Maio de 2008

Até agora se você desejasse descobrir durante a execução do seu código qual é a versão do Rails que está no ar, bastava usar:
Rails::VERSION::STRING
Mas temos de concordar que isto não parece muito legal. Por isto no Rails 2.1 não usaremos mais este código, mas sim:
Rails.version
Melhor!

Edge Rails: Armazenando o nome completo da classe ao usar STI

Por Carlos Brando em 23 de Maio de 2008

Patch de brasileiro e não é de qualquer brasileiro, é do meu colega de trabalho na Surgeworks, Rodrigo Kochenburger.
Neste patch o Rodrigo resolveu um problema que tínhamos ao usar models com namespace e STI. Nas suas próprias palavras:
Quando usamos models com namespace e STI, o ActiveRecord armazena apenas o nome da classe, sem o namespace [...]

Edge Rails: Definindo a localização de seu arquivo de rotas

Por Carlos Brando em 13 de Maio de 2008

No Rails 2.1 você poderá definir em que arquivo estão suas rotas incluindo a seguinte linha no seu arquivo environment.rb:
config.routes_configuration_file
Isto pode ser útil em um cenário onde você tem dois front-ends separados que usam os mesmos módulos, bibliotecas e plugins.
Por exemplo, getsatisfaction.com e api.getsatisfaction.com compartilham os mesmos modelos, mas não os controllers, helpers e views. [...]

Edge Rails: script/dbconsole

Por Carlos Brando em 08 de Maio de 2008

Esta é quentinha. Acabou de sair…
No Rails 2.1 teremos mais um script para facilitar nossa vida:
script/dbconsole
Ele faz a mesma coisa que o script/console mas para o banco de dados. Em outras palavras ele entra no cliente de linha de comandos do banco de dados. Veja o resultado do meu teste:

Como você pode ver estou usando [...]

Muito atrasado com o Edge Rails… mas estamos aí

Por Carlos Brando em 01 de Maio de 2008

Ufa… finalmente terminei de analisar todas as alterações quer foram realizadas no Rails através do Trac. Agora estou indo para as que estão no GitHub e LightHouse, e já estou beeemm atrasado, já que tem quase 100 alterações que preciso conferir.
Talvez a alteração que precisava sair mais rápido é a do rails:freeze:edge, que precisava agora [...]

Edge Rails: Congelando um release específico do Rails

Por Carlos Brando em 01 de Maio de 2008

Hoje no Rails não é possível congelar o Rails em seu projeto pela versão, mas somente podemos fazer isto pela revisão. Claro que podemos verificar qual foi a última revisão antes do lançamento da versão, mas isto é trabalho extra.
No Rails 2.1, poderemos congelar um release específico com o comando abaixo:
rake rails:freeze:edge RELEASE=1.2.0

Propaganda:

Últimos Artigos

Rails 2.2: Alterada a mensagem do método assert_difference 20/11/2008
Carlos Brando

Rails 2.2: Alterada a mensagem do método assert_difference

Quando usávamos o método assert_difference com múltiplas expressões e um erro ocorria era difícil de saber qual das expressões não teve seu val[...] Leia Mais »