Edge Rails: Fazendo uso da opção accessible em formulários

29 de julho de 2008  |  Rails 2.2  | 

No último artigo desta série comentei sobre a nova forma de atribuir valores à associações usando a opção :accessible.

Agora vou mostrar uma das grandes vantagens dessa novidade. Fazendo uso deste novo recurso podemos melhorar a forma como usamos o método fields_for. Vamos pegar um exemplo, baseado nos códigos do artigo anterior:

<% form_for @post do |f| %>
  <%= f.text_field :body %>
  <% fields_for :author do |a_f| %>
    <%= a_f.text_field :name %>
  <% end %>
  <%= submit_tag %>
<% end %>

Estou usando o método fields_for para acrescentar o nome do autor na página de criação de posts. Agora vem a melhor parte, veja como ficaria a criação do post e do autor usando este novo recurso:

class PostController < ApplicationController

  def new
    @post = Post.create(params[:post])
    respond_to do |wants|
      ...
    end
  end
end

Veja que estou usando apenas o método create do objeto Post. Como foi definido a opção :accessible do relacionamento deste objeto com o objeto Author como verdadeiro (true), a criação do autor é automática e transparente.



2 Comentários


  1. Essa feature é bem legal. Vale lembrar que ainda não foi implementada a capacidade de update e destroy com hashs aninhados no ActiveRecord.

  2. sinistro, essas coisas automáticas do rails que fazem toda a diferença… não tenho saudade nenhuma do meu tempo de php e delphi.

Trackbacks

  1. Nome do Jogo » Blog Archive » Esqueça atribuições em massa no Rails, pelo menos por enquanto
  2. Rails 2.3: Nested Attributes | Nome do Jogo

Deixe um comentário