Ruby on rails 3 Rails 3:As json with include选项不考虑包含关联的As_json重新定义

Ruby on rails 3 Rails 3:As json with include选项不考虑包含关联的As_json重新定义,ruby-on-rails-3,json,Ruby On Rails 3,Json,我有两个模型 Class ModelA < ActiveRecord::Base has_many :model_bs end Class ModelB < ActiveRecord::Base belongs_to :model_a def as_json(options = {}) { :whatever => 'hello world' } end end classmodela:model_b)时,我希望它返回

我有两个模型

Class ModelA < ActiveRecord::Base

  has_many :model_bs

end

Class ModelB < ActiveRecord::Base

  belongs_to :model_a

  def as_json(options = {})
    {
       :whatever => 'hello world'
    }
  end

end
classmodela“你好,世界”
}
结束
结束

当我调用
model_a.as_json(:include=>:model_b)
时,我希望它返回一个json,其中包含所有的model_b,它是这样做的,但使用了我的as_json重新定义,它不这样做,因为它只使用默认的定义。有没有办法用我自己的方法而不是原来的方法?感谢Rails 3中的

,因为json方法调用可序列化的散列来获取属性散列。它们共享相同的“选项”参数。在您的情况下,覆盖可序列化的_散列将得到预期的结果

def serializable_hash(options = {})
  {:whatever => 'hello world'}
end
但是,我的建议是,不要改写惯例,而是根据“super”的结果进行操作,如下所示:

 def serializable_hash(options = {})
  hash = super
  has[:name] = "hello world"
  hash
end