다음은 간단한 ActiveResource 클래스입니다. 그것은 인스턴스 변수와 어쩌면 몇몇 메소드를 가지고 있지만, 어떤 데이터에 의해서지지되지는 않습니다.이 Ruby 클래스로 간단한 json을 어떻게 만들 수 있습니까?
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 모델의 인스턴스 변수를 cherry로 선택하는 방법은 어떻습니까? b
및 c
만 신경 써야하지만 a
, d
또는 그 외의 부분은 신경 쓰지 않는다고 가정 해 보겠습니다. 우리는 더 이 'B'또는 'C'라는 만 값 속성없는이 있기 때문에,하지만 작동하지 않습니다
ruby-1.8.7-p299 > bx.to_json({:only => ['b', 'c']})
=> "{}"
. 우리는 어떻게 이런 식으로 끝낼 수 있습니까?
{ "box": { "b": 200, "c": 300 } }
ActiveResource에서 상속하지 않고도이 기능을 사용할 수 있습니까?
감사합니다. 두 가지 빠른 것들 : ActiveResource가 아닌 ActiveResource를 사용하고 있습니다. 또한,'methods'가 여기서 작동 할 지 확신하지 못합니다.'bx.to_json (: methods => [: b, : c])'는 모든 것을 포함하는 해시를 생성합니다. 둘째,''b "=> b,"c "=> c, ...'꽤 반복적으로 쓰는 것 아닌가요? JSON-ize에 속성을 지정할 수있는 방법이 있습니까? –
내 리소스가 부족합니다. 죄송합니다. 나는 그것을 놓쳤습니다 : D 당신이 묻는 것에 관해서 : 당신은 JSON 응답에 넣으려는 방법을 표현하기 위해 항상 기호 나 문자열의 목록을 취할 수 있습니다. 내가 찾고있는 것을 더 좋아한다면 그것을 명확하게하기 위해 위의 내 응답을 편집 할 것입니다. – jasonpgignac