【发布时间】:2010-07-28 13:36:39
【问题描述】:
这是一个简单的 ActiveResource 类。它有一些实例变量,甚至可能有一些方法,但它没有任何数据支持。
ruby-1.8.7-p299 > class Box < ActiveResource::Base;
attr_accessor :a, :b, :c, :d;
end
=> nil
让我们填充它:
ruby-1.8.7-p299 > bx = Box.new; bx.a = 100; bx.b = 200;
bx.c = 300; bx.d = 400;
bx
=> #<Box:0xb5841c54 @attributes={}, @b=200, @a=100,
@prefix_options={}, @c=300, @d=400>
到目前为止一切顺利。我们为它的 JSON 模型挑选一些实例变量怎么样?假设我们只关心b 和c,而不关心a、d 或其他任何东西。
ruby-1.8.7-p299 > bx.to_json({:only => ['b', 'c']})
=> "{}"
然而,这不起作用,因为我们没有称为“b”或“c”的属性,只有值。我们怎么能得到这样的结果?
{ "box": { "b": 200, "c": 300 } }
更好的是,我们可以在不继承 ActiveResource 的情况下获得这个吗?
【问题讨论】:
标签: ruby-on-rails ruby json