Artigos da categoria ‘ActionPack’

Edge Rails: caches_action aceita condicionais

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.

Edge Rails: action_name

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.

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: flash.now agora funciona em testes

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 [...]

Edge Rails: label_tag agora aceita :for

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…

Edge Rails: Testando Helpers de forma simples

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)
[...]

Edge Rails: Time.current

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 [...]

Edge Rails: Condicional no método caches_page

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? }

Edge Rails: Rails.public_path

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

Edge Rails: Path Names

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 [...]

Edge Rails: Mais JSON

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 [...]

Edge Rails: Acessando Helpers fora das Views

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 [...]

Edge Rails: simple_format pode receber atributos HTML

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 [...]

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 [...]

Edge Rails: Adicionada opção de confirmação no submit_tag

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 [...]

Edge Rails: Bug no método TextHelper#excerpt corrigido

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 [...]

Propaganda:

Últimos Artigos

Não abrace a sua ignorância 21/08/2008
Carlos Brando

Não abrace a sua ignorância

Este post é uma tradução deste artigo escrito por David Hansson. Eu nunca gostei da idéia de livros com títulos como “for Dummies” ou “comp[...] Leia Mais »