Por Carlos Brando em 19 de Maio de 2008
O método caches_action agora também aceita a opção :if, permitindo o uso de condicionais para especificar quando uma action pode ir para o cache. Por exemplo:
caches_action :index, :if => Proc.new { |c| !c.request.format.json? }
No exemplo acima, a action index só irá para o cache se não foi acessada via um request JSON.
Por Carlos Brando em 15 de Maio de 2008
Agora para saber qual action foi chamada durante a execução de sua view ficou mais fácil, basta usar o método action_name:
<%= action_name %>
O retorno será o mesmo que pegar o params[:action], mas de uma forma mais elegante.
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. [...]
Por Carlos Brando em 13 de Maio de 2008
Também já quebrei a cabeça por causa disto. O problema é que durante os testes você nunca podia confirmar se uma mensagem foi armazenada no flash, porque ela era limpa pelo Rails antes de cair no seu script de teste.
No Rails 2.1 este problema foi resolvido. Agora você pode incluir linhas como esta em seus [...]
Por Carlos Brando em 13 de Maio de 2008
Lembra do método label_tag?
Agora ele aceita a opção :for, veja um exemplo:
label(:post, :title, nil, :for => “my_for”)
Isto vai retornar algo assim:
<label for=”my_for”>Title</label>
Hmm… não entendi para que isto…
Por Carlos Brando em 07 de Maio de 2008
Uma coisa muito chata de se fazer hoje no Rails é testar helpers. Eu mesmo já sofri um bocado para garantir 100% de cobertura, criando testes para alguns helpers.
Isto deve ficar mais simples no Rails 2.1 com a nova classe ActionView::TestCase. Vamos pegar o código abaixo como exemplo:
module PeopleHelper
def title(text)
[...]
Por Carlos Brando em 03 de Maio de 2008
Novo método para a classe Time. O retorno do método current depende do config.time_zone, se ele foi especificado antes, o método retornará um Time.zone.now, caso contrário será um Time.now.
# o retorno depende do config.time_zone
Time.current
Os métodos since e ago também terão seus retornos alterados, devolvendo um TimeWithZone caso o config.time_zone tiver sido especificado.
Isto torna o método [...]
Por Carlos Brando em 02 de Maio de 2008
No Rails 2.1 o método caches_page aceitará uma opção para condicionar seu uso (:if). Veja um exemplo:
# forma atual
caches_page :index
# No Rails 2.1 você poderá usar a opção :if
caches_page :index, :if => Proc.new { |c| !c.request.format.json? }
Por Carlos Brando em 30 de Abril de 2008
Foi incluído no Rails o atalho Rails.public_path para recuperar o caminho do diretório Âpublic do projeto. Com isto também fica fácil alterar o caminho se for necessário.
Rails.public_path
Por Carlos Brando em 29 de Abril de 2008
Todos já devem conhecer o meu plugin Custom Resource Name. Acho que ele pode estar com seus dias contados…
Já faz algum tempo que um desenvolvedor chamado Ivan Vega me procurou por email para montar um patch para o Rails baseando-se no meu plugin. Na verdade ele já tinha um código parecido e queria adaptar [...]
Por Carlos Brando em 29 de Abril de 2008
Rails agora aceita POSTs de conteúdo JSON. Por exemplo, você pode enviar uma requisição POST assim:
POST /posts
{”post”: {”title”: “Breaking News”}}
E o tudo vai para dentro da variável params. Isto aqui funcionará, por exemplo:
def create
@post = Post.create params[:post]
# …
end
Para quem não sabe o JSON é um Âconcorrente do XML, e é muito [...]
Por Carlos Brando em 23 de Abril de 2008
Aí está mais uma alteração que gostei. Quantas vezes eu não criei um helper e depois quis usá-lo dentro do meu controller… Para conseguir isto só incluindo o módulo do mesmo no controller, mas isto sempre me deixava com uma sensação de sujeira.
Para o Rails 2.1 foi criado um proxy para acessar os helpers de [...]
Por Carlos Brando em 04 de Abril de 2008
O método simple_format basicamente recebe como parâmetro um texto qualquer e o formata de uma forma simples em HTML. Quando eu digo ÂsimplesÂ, estou dizendo BEM simples mesmo.
O que ele faz é pegar o texto e substituir uma quebra de linha (\n) pela tag <br />. E quando temos duas quebras de linha seguidas [...]
Por Carlos Brando em 01 de Abril de 2008
Está é uma excelente atualização para quem está desenvolvendo softwares para o Brasil. O conhecido método number_to_currency na versão 2.1 do Rails vai aceitar a opção :format como parâmetro, permitindo a formatação do valor retornado pelo método.
Hoje, na hora de formatarmos valores em reais precisamos incluir um espaço na frente da opção :unit para que [...]
Por Carlos Brando em 31 de Março de 2008
Algo muito comum, é quando o usuário clica no botão submit de um formulário, desejarmos que ele confirme a ação antes de prosseguir. Até agora para que isto funcionasse era necessário dar um jeitinho no método submit_tag. Algo assim:
submit_tag(’Save changes’, :onclick => “return confirm(’Are you sure?’)”)
Mas este tipo de coisa não é mais necessário. Agora [...]
Por Carlos Brando em 26 de Março de 2008
O método excerpt é um helper que funciona assim:
excerpt(’This is an example’, ‘an’, 5)
# => “…s is an examp…”
Eu pedi para que ele localizasse dentro da frase ÂThis is an example a palavra Âan e me retornasse uma abreviação da frase com os cinco caracteres antes e depois da palavra, acrescentando quando necessário o sinal [...]