Artigos com a Tag ‘ActionPack’

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: Opções no método field_set_tag

Por Carlos Brando em 19 de Novembro de 2008

Foi adicionado ao método field_set_tag um parâmetro opcional para facilitar a formatação do HTML. Este parâmetro aceita todas as opções que o método tag já aceita. Exemplo:
<% field_set_tag nil, :class => ‘format’ do %>
<p>Some text</p>
<% end %>

O código acima retornará o seguinte:
<fieldset class=”format”>
<p>Some text</p>
</fieldset>

Todos os exemplos dados aqui funcionarão somente no [...]

Rails 2.2: Caminho completo da view no caso de uma exceção

Por Carlos Brando em 05 de Novembro de 2008

Quando uma exceção é dispara recebemos em nossa view uma mensagem semelhante a esta:
NoMethodError in Administration/groups#show
Showing app/views//_list.erb where line …

Quando na verdade deveríamos receber uma mensagem com o caminho completo do arquivo que disparou o erro, assim:
NoMethodError in Administration/groups#show
Showing app/views/administration/reports/_list.erb where line …

Este problema já está corrigido no Rails 2.2, facilitando nosso trabalho.
Todos os exemplos [...]

Rails 2.2: Cookie de sessão agora é HttpOnly

Por Carlos Brando em 04 de Novembro de 2008

Ao se criar um cookie existe uma opção esquecida por muita gente. A opção http_only faz com que o cookie somente seja acessível via HTTP, impedindo que um trecho de código em javascript consiga acessá-lo. O valor padrão para esta opção é false.
No Rails 2.2 o cookie que armazena a sessão do usuário terá a [...]

Evitando ataques Response Splitting

Por Carlos Brando em 23 de Outubro de 2008

Além da correção do bug no método count do ActiveRecord, conforme mencionei no post anterior. Outra correção de segurança vem com com a nova versão 2.1.2 do Rails.
Até agora no Rails as URLs passadas para o método redirect_to não passavam por um processo de santization. Isto era perigoso, pois abria brechas para que pessoas mal [...]

Edge Rails: Opção :confirm no método image_submit_tag

Por Carlos Brando em 23 de Outubro de 2008

A opção :confirm, muito utilizada em helpers como o link_to, agora também está disponível para o método image_submit_tag.
Esta opção faz com que uma caixa de confirmação, com uma pergunta personalizada, seja exibida ao se clicar na imagem. Se o usuário aceitar, o formulário é enviado normalmente, caso contrário nada acontece.
image_submit_tag(”delete.gif”, :confirm => “Are you sure?”)
# [...]

Edge Rails: Bug no submit_tag corrigido

Por Carlos Brando em 20 de Outubro de 2008

Quando usávamos o método submit_tag com a opção :disable_with ligada, ele suprimia o parâmetro :commit quando o formulário era enviado para o servidor. Isto acontecia porque após submeter o formulário, o javascript do evento onclick primeiro desabilita o botão e só depois envia o formulário ao servidor, e como sabemos campos desabilitados não são enviados [...]

Edge Rails: Benchmarking reports em milisegundos

Por Carlos Brando em 06 de Outubro de 2008

Todas as mensagens de log que continham uma indicação do tempo que determinado processo levou para ser executado, foram alteradas para exibir o tempo em milisegundos.
Por exemplo, a mensagem:
Completed in 0.10000 (4 reqs/sec) | Rendering: 0.04000 (40%) | DB: 0.00400 (4%) | 200 OK [http://example.com]
Agora será exibida da seguinte forma:
Completed in 100ms (View: 40, DB: [...]

No exemplo abaixo estou renderizando uma partial, e não estou informando qual variável ela deve usar para preencher o conteúdo. Hoje o Rails encara que como tenho uma variável de instância com o mesmo nome, implicitamente é esta que deve ser usada.
@customer = Customer.new(”Carlos Brando”)
render :partial => “customer”
Isto funciona mas é um pouco arriscado. A [...]

Porque country_select virou um plugin

Por Carlos Brando em 24 de Setembro de 2008

Ontem eu mencionei aqui no blog que o helper country_select foi removido do Rails e virou um plugin. Eu não tinha entendido muito bem, mas o Rafael Mueller me ajudou a esclarecer o assunto.
O problema todo é que Taiwan segundo a norma ISO 3166, se chama na verdade “Taiwan, Province of China”. E foi exatamente [...]

Esqueça atribuições em massa no Rails, pelo menos por enquanto

Por Carlos Brando em 23 de Setembro de 2008

Lembra-se destes dois artigos?

Edge Rails: Usando a opção :accessible para fazer atribuições em massa no ActiveRecord
Edge Rails: Fazendo uso da opção accessible em formulários

Pois bem, esqueça. Esta funcionalidade foi removida do Rails, pois não estava totalmente completa e não daria tempo de terminar tudo até o lançamento do Rails 2.2.
Provavelmente ela deve voltar no futuro, [...]

Edge Rails: country_select removido do Rails

Por Carlos Brando em 23 de Setembro de 2008

O helper country_select foi removido do Rails. Para quem não se lembra, este método retorna uma lista com todos os países do mundo.
O motivo deste método ter sido removido do Rails é que aparentemente ele será atualizado para utilizar a norma ISO 3166 para os nomes dos países. Em outras palavras, ao invés de gravar [...]

Edge Rails: Polymorphic Routes

Por Carlos Brando em 15 de Setembro de 2008

Os métodos *_polymorphic_url e *_polymorphic_path, muito usados para gerar URLs a partir de registros do banco de dados, receberam um novo parâmetro opcional. Agora, além dos parâmetros normais eles também aceitam um hash de opções, tornando possível gerar rotas com parâmetros adicionais na url.
Vamos aos famosos exemplos, com o método equivalente nos comentários:
edit_polymorphic_url(@article, :param1 => [...]

Edge Rails: Recuperando a string atual do método cycle

Por Carlos Brando em 14 de Setembro de 2008

Muito provavelmente você já conhece o método cycle. Ele é muito usado para alternar as cores de linhas em um tabela, alterando a propriedade class de cada row.
@items = [1,2,3,4]
<table>
<% @items.each do |item| %>
<tr class=”<%= cycle(”even”, “odd”) -%>”>
<td>item</td>
</tr>
<% end %>
</table>

Um novo método foi [...]

Edge Rails: Simplificando o acesso aos resources

Por Carlos Brando em 12 de Setembro de 2008

Rotas aninhadas já não é mais novidade. Ao configurar nossas rotas é comum codificarmos algo mais ou menos assim:
map.resources :users do |user|
user.resources :posts do |post|
post.resources :comments
end
end

No código acima estou deixando claro que meus usuários tem posts, que por sua vez tem comentários. Da forma como minhas rotas [...]

Edge Rails: Evitando feeds duplicados

Por Carlos Brando em 11 de Setembro de 2008

Algumas vezes você assina o feed de um blog e de repente se depara com uma série de posts que já foram lidos aparecendo como se fossem novos no seu Google Reader. Já aconteceu com você?
Isto pode acontecer por vários motivos, mas não seria legal deixar isto acontecer com os assinantes do seu feed, correto?
Para [...]

Edge Rails: Aumentando as possibilidades com partials

Por Carlos Brando em 07 de Setembro de 2008

Vamos pegar o seguinte exemplo:
<!– Arquivo _layout.html.erb –>
inicio
<%= yield %>
fim

<!– uma view qualquer –>
<%= render :layout => ‘layout’ do %>
meio
<% end %>
O resultado deste código seria:
inicio
meio
fim

No exemplo acima estou incluindo uma partial dentro da minha view e usando o método yield para personalizar o conteúdo, que é passado dentro de um bloco através do método [...]

Eu avisei no último artigo desta série que muitos métodos do Rails seriam alterados para deixarem de receber seus parâmetros da forma convencional e passariam a recebe-los via um Hash de opções.
Pois bem, agora chegou a vez dos métodos truncate, highlight, excerpt, word_wrap e auto_link serem atualizados. Veja como eles devem ser usados a partir [...]

Edge Rails: Alteração no método error_message_on

Por Carlos Brando em 25 de Agosto de 2008

O método error_message_on é extremamente útil. Com ele podemos exibir mensagens de erro retornadas por determinados métodos em um objeto de uma forma bem simples.
<%= error_message_on “post”, “title” %>

<!– ou –>

<%= error_message_on @post, “title” %>

Isto fará com que uma mensagem de erro seja exibida na sua página dentro de uma tag DIV, caso um erro [...]

Às vezes você tem de rodar múltiplas cópias do mesmo projeto. Talvez você tenha um produto que será usado por vários clientes, ou talvez você apenas deseje rodar uma versão de teste e produção do seu software ao mesmo tempo.
A forma mais simples de se fazer isto é ter múltiplos (sub)domínios com uma instância do [...]

O método number_with_delimiter recebeu uma nova implementação. Além de uma melhora no código para que fique mais limpo a assinatura do método também mudou. Veja a antiga:
def number_with_delimiter(number, delimiter=”,”, separator=”.”)

# Exemplos de uso
number_with_delimiter(12345678) # => 12,345,678
number_with_delimiter(12345678.05) # => 12,345,678.05
number_with_delimiter(12345678, “.”) # => 12.345.678
number_with_delimiter(98765432.98, ” “, “,”)

E a nova:
def number_with_delimiter(number, *args)

# Exemplos de uso
number_with_delimiter(12345678) # => [...]

Edge Rails: Uma forma mais simples de usar ETags

Por Carlos Brando em 17 de Agosto de 2008

Se você ainda não sabe o que são ETags, leia o último post desta série.
Este recurso já foi efetivamente incluido no branch oficial do Rails, mas junto com ele também ganhamos mais dois novos métodos que devem facilitar a forma como vamos implementar isto em nosso código. Os métodos etag! e last_modified!.
Veja a implementação destes [...]

Edge Rails: Melhorando a performance usando ETags

Por Carlos Brando em 15 de Agosto de 2008

O Carlos Júnior já escreveu sobre isto no blog da milk-it. Provavelmente teremos suporte a ETags no Rails 2.2. Eu disse provavelmente porque isto ainda não foi incluído no branch oficial do Rails, mas como é algo importante e está sendo feito pelo core team, é quase certo de que será.
Antes de começar a falar [...]

Edge Rails: Opção :index funcionando no fields_for

Por Carlos Brando em 12 de Agosto de 2008

Muitas vezes a opção :index do método select pode ser útil, como por exemplo quando se precisa criar diversos dropdowns dinamicamente em uma página.
Até hoje o método fields_for não repassava esta opção para métodos como select, collection_select, country_select e time_zone_select, o que limitava o seu uso em determinados casos.
Isto já foi corrigido para a próxima [...]

Edge Rails: Recebendo alertas para melhoria de desempenho

Por Carlos Brando em 11 de Agosto de 2008

O Rails recebeu mais um parâmetro de configuração que faz com que ele emita um alerta caso esteja renderizando um template fora do diretório especificado para views. Isto é muito bom já que arquivos fora dos diretórios especificados para views não são armazenados em cache o que resulta em mais operações no disco.
Para começar a [...]

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 »