Edge Rails: Rails.public_path 1

Publicado 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

Os filósofos da nossa época são os programadores 2

Publicado por Carlos Brando em 30 de Abril de 2008

Foto de fabricio caiazza

Edge Rails: Alteração no retorno padrão do método sum do ActiveRecord

Publicado por Carlos Brando em 30 de Abril de 2008

Hoje quando usamos o método sum do ActiveRecord para calcular a soma de uma determinada coluna para todos os registros de uma tabela, e nenhum registro corresponde às condições expostas na execução do método, o retorno padrão é nil.

Isto vai mudar no Rails 2.1, onde o retorno padrão (quando nenhum registro é encontrado) será 0. Veja um exemplo:

Account.sum(:balance, :conditions => '1 = 2') #=> 0

Edge Rails: Path Names

Publicado 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 para funcionar mais ou menos como o meu funcionava. Trocamos algumas idéias, e ele criou o patch (com algumas alterações para ficar da forma como ele achou que seria melhor) e conseguiu com ele fosse incluído no Rails.

No Rails você já podia incluir a opção :as na suas rotas (coisa que fiz questão de implementar igual no meu plugin, para manter a compatibilidade), agora você também terá a opção :path_names para alterar os nomes das actions.

map.resource :schools, :as => 'escolas', :path_names => { :new => 'nova' }

Para entender como funciona o meu plugin, clique aqui.

Edge Rails: Mais JSON

Publicado 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 usado para tráfego de dados em JavaScript, porque é representado nesta linguagem. Daí o seu nome: JavaScript Object Notation.