0

私はこのようなモデルを持っています:

class User < ActiveRecord::Base
    has_many :cookies
    has_many :fortunes, :through => :cookies

    def new_cookies
        cookies.all :include => :fortune, :conditions => {:opened => false}
    end
end

class Cookie < ActiveRecord::Base
    belongs_to :user
    belongs_to :fortune

    def self.find_by_shortened_id(shortened_id)
        find(shortened_id.alphadecimal)
    end

    def shortened_id
        self.id.alphadecimal
    end
end

class Fortune < ActiveRecord::Base
    serialize :rstatuses
    serialize :genders 

    has_many :cookies
    has_many :users, :through => :cookies
end

Userオブジェクトを jsonに変換する必要がありますが、 cookies(new_cookies メソッドを介して) new をすべて含め、それらcookiesの a)shortened_idと b)idfortune.

これは to_json で可能ですか?

これまでのところ、新しいCookieを提供するフォローがあります:

user.to_json :methods => :new_cookies

shortened_idしかし、メソッドによって返された値と Cookie の fortune の値を Cookie オブジェクトに含める方法を理解しようとしていますid

4

1 に答える 1

0

as_jsonユーザーモデルでオーバーライドできます。

class User < ActiveRecord::Base

  def as_json(options={})
    json_res = super
    json_res['cookies'] = ...
  end

end

アプリケーションの複数の場所でこれらのタイプの JSON カスタマイズが必要な場合は、JSON をレンダリングするためのjbuilder gemを確認する必要があります。

于 2012-11-28T00:28:41.930 に答える