Rails 2.3: Formatted Routes

3 de fevereiro de 2009  |  Rails 2.3  | 

No Rails 2.3, ao acessar nossas rotas nomeadas não teremos mais métodos como formatted_post_path ou formatted_new_user_path. Estes métodos dinâmicos foram removidos com o objetivo de melhorar o consumo de memória no Rails.

Mas isto não significa que não teremos mais a funcionalidade de rotas formatadas. Elas continuam existindo, mas devem ser acessadas de outra maneira. Vejamos alguns exemplos comparando a forma atual e a nova forma:

# atual
formatted_post_path(post, :xml)
# novo
post_path(post, :format => :xml)

# atual
formatted_new_user_path(:json)
# novo
new_user_path(:format => :json)

É uma mudança muito pequena, mas que internamente tem um impacto significativo no consumo de memória dos processos Rails, principalmente se você possui muitas rotas em seu projeto.

Caso você esteja em um processo de migração deve atentar a esta alteração.

O Rails 2.3 já está em sua versão RC1 e em poucos dias devemos ter sua versão final lançada, mas esta série continuará expondo algumas das novidades que encontraremos nesta versão.


Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.3/3.0 ou superior. Você pode encontrar mais detalhes sobre esta e outras novidades acompanhando a série Edge Rails.



6 Comentários


  1. carlos, tem como eu apelidar uma coluna do meu model?
    porque eu to usando as colunas em ingles dai quando da a mensagem de validações ele sai o campo em ingles e dai eu queria dar um apelido para saber o apelido na mensagem das validações e não o nome em ingles mesmo da coluna!

  2. Ótimo post Carlos! =] Parabéns. Vai sari o Book 2.3?? =D Estou ansioso para adquirir hehe.

    @herminio = Para mudar mensagens de validações se vc estiver usando o Rails 2.2.2 pode usar o arquivo de internacionalização para alterar o nome do modelo e das colunas, caso não esteja pode sobrescrever o metodo error_messages_for e adicionar opcoes de passsar uma lista com o nome dos campos, isso eh meio que gambiarra o recomendado eh utilizar internacionalização….
    Veja exemplos neste site http://i18n-demo.phusion.nl/.

    Carlos não tem problema de eu comentar a dúvida do herminio neh?

    Abraços. Bom trabalho! =D

  3. Maykon,

    Com certeza vai sair um terceiro livro, mas não deve ser sobre o Rails 2.3. Vejamos como as coisas vão correr…

    E não tem problema algum em responder as dúvidas de ninguém. Isto aqui é de vocês.

  4. bem não é sobre traduzir as mensagens das validações, eu quis saber como da um apelido para o nome da coluna do model saco? tipo em vez de ser name ser nome?!

    tipo no routes eu posso fazer isso em vez deu digita a url: customers, posso digitar clientes… era isso que eu queria para os campos do model… da apelidos para eles, para não ficar em ingles!

  5. Hermínio, acho que foi exatamente isto que o Maykon quis dizer. É possível incluir os campos das tabelas na configuração de internacionalização.

    Se eu não me engano ele segue um formato mais ou menos assim:

    pt-BR:
      activerecord:
        attributes:
          products:
            title: "Título"
  6. Ae brando, é isso mesmo… só que o nome do model fica no singular, vlws ai pros dois!

Deixe um comentário