Tengo un modelo con datos que nunca deberían incluirse cuando se representa como json. Así que implementé el método de clase 'as_json' para comportarme adecuadamente. El problema es que cuando otros modelos con asociaciones con este modelo hacen json, mi costumbre as_json no se está llamando.as_json no está llamando a as_json en asociaciones
class Owner < ActiveRecord::Base
has_one :dog
def as_json(options={})
puts "Owner::as_json"
super(options)
end
end
class Dog < ActiveRecord::Base
belongs_to :owner
def as_json(options={})
puts "Dog::as_json"
options[:except] = :secret
super(options)
end
end
entorno de desarrollo de carga (Rails 3.0.3)
ruby-1.9.2-p136: 001> d = Dog.first
=>#<Dog id: 1, owner_id: 1, name: "Scooby", secret: "I enjoy crapping everwhere"
>
ruby-1.9.2-p136 : 002> d.as_json
perro :: as_json
=> { "perro" => { "id" => 1, "nombre" => "Scooby", "OWNER_ID" => 1}}
rubí -1.9.2-p136: 004> d.owner.as_json (: include =>: dog)
Propietario :: as_json
=> {"owner" => {"id" => 1, "name" => "Shaggy",: dog => {"id" => 1, "nombre" => "Scooby", "owner_id" "=> 1, "secreto"=>" me gusta crapping a todas partes "}}}
Gracias por la ayuda
tengo este problema, así, durante el uso de Mongoid on Rails 3.0.9. – arbales