0

現在、モデルの as_json メソッドには次のものがあります。

  #values we will pass to Json
  def as_json(options={})
    super(:only => [:name, :last_name, :age])
  end

いくつかのロジックを実行して値を返すメソッドがあります。

def self.full_name
 self.name + self.last_name
end

「オプション」の結果を as_json に、既に持っているフィールドとともに返すにはどうすればよいですか? 私はこれを試しました:

#values we will pass to Json
  def as_json(options={})
    super(:only => [:name, :full_name => self.full_name, :last_name, :age])
  end

運がない。

4

2 に答える 2

3

シャドウェルの答えは完全に正しいです。:methodsただし、次のようにキーを使用できると思います。

def as_json(options={})
    super(:only => [:name, :last_name, :age], :methods => [:full_name])
end
于 2013-01-22T20:05:54.800 に答える
0
def as_json(options = {})
  super(:only => [:name, :last_name, :age]).merge(
    { :full_name => self.full_name }.as_json
  )
end

これは、モデル属性のデフォルトの実装を使用してから、派生属性にマージします。

于 2013-01-22T19:52:42.973 に答える