2

to_json にコントローラーからの静的メソッドを含めたい。

class ApplicationController < ActionController::Base   
  def self.server_time
    Time.now
  end 
end

私は両方を試しました:

o.to_json(:methods => ApplicationController.server_time)

o.to_json(:include => ApplicationController.server_time)

しかし、私はTypeErrorを取得します:

TypeError: 2013-04-04 08:33:31 +0300 is not a symbol

o は ActiveRecord オブジェクトです

4

3 に答える 3

2

oあなたのコンテキストに何があるかはわかりませんが、次のこともできます。

[o, ApplicationController.server_time].to_json

また

{ApplicationController.server_time: o}.to_json

jsonに時間を含める

于 2013-04-10T18:29:39.853 に答える
2
ApplicationController.server_time.to_json

私のために働く

于 2013-04-04T05:45:37.823 に答える
2

新しいキー「時間」を使用して以前と同じように JSON が必要な場合は、次のようにします。

o.as_json.merge({time:ApplicationController.server_time}).to_json
# => {time:123, id:1, name: 'name', ...}

時間のキーとオブジェクトのキーを使用することもできます。

{time: ApplicationController.server_time, object: o}.to_json
 # => {time:123, object: {id:1, name: 'name', ...} }

to_jsonRails の魔法のおかげで、コントローラーで指定する必要はありません。

render json: o.as_json.merge({time:ApplicationController.server_time})
# or the other option
render json: {time: ApplicationController.server_time, object: o}
于 2013-04-15T10:53:12.980 に答える