Tenho os seguintes modelos
[code]class Mantenedora < ActiveRecord::Base
validates_presence_of :nome,:sigla,:cnpj,:telefone, :message => “não pode ser branco”
#validates_numericality_of :cnpj,:telefone, :message => "pode ser somente numero"
validates_length_of :cnpj, :within => 14…18, :message => "deve ter 14 caracteres"
validates_length_of :telefone, :within => 10…14, :message => "telefone com DDD"
belongs_to :endereco
#accepts_nested_attributes_for :endereco, :allow_destroy => true
#attr_accessible :endereco_attributes
end
class Endereco < ActiveRecord::Base
belongs_to :tipo_endereco
belongs_to :tipo_logradouro
has_one :mantenedora
#belongs_to :mantenedora, :class_name => “Mantenedora”, :foreign_key => "mantenedora_id"
end
[/code]
Tenho a seguinte View de cadastrar Mantenedora
[code]<%= form_for(@mantenedora) do |f| %> <% if @mantenedora.errors.any? %>
<%=
pluralize(@mantenedora.errors.count, “error”) %> Mantenedora não pode ser salva:
- <% @mantenedora.errors.full_messages.each do |msg| %>
- <%= msg %> <% end %>
<%= f.fields_for :endereco, @mantenedora.endereco do |endereco_form| %>
<%= render :partial => 'endereco', :locals => { :l => endereco_form } %>
<% end %>
<% end %>
[/code]
Minha situação é a seguinte, tenho uma tabela Mantenedora que tem a coluna endereco_id que é chave estrangeira da tabela Endereco, que ao cadastrar mantenedora, quero cadastrar o endereço também(estou usando uma tabela a parte pois terei vários cadastros que precisam do endereco assim fica com menos replicações), estou usando fields_for para carregar os dados do cadastro do endereco, porém aparece esse erro ao salvar a mantenedora:
[quote]Endereco(#2112) expected, got ActiveSupport::HashWithIndifferentAccess(#2100)
Rails.root: /Users/maxmiller/github/sistemico
Application Trace | Framework Trace | Full Trace
app/controllers/mantenedoras_controller.rb:45:in `create’
Request
Parameters:
{“utf8”=>“✓”,
“authenticity_token”=>“RUIcrbjFPXYyh7R9EtK3S8aQmdTCkN1XHbufssB2DRw=”,
“mantenedora”=>{“nome”=>“yyyy”,
“sigla”=>“yyyy”,
“cnpj”=>“11.111.111/1111-11”,
“telefone”=>"(77)7777.7777",
“endereco”=>{“tipo_endereco_id”=>“1”,
“tipo_logradouro_id”=>“2”,
“logradouro”=>“xxxxx”,
“numero”=>“100000”,
“complemento”=>“jdhfgsd”,
“bairro”=>“dgkfhds”,
“cep”=>“8989898989”}},
“commit”=>“Cadastrar Mantenedora”}
[/quote]