Rails:to_json方法,添加函数返回值

时间:2015-11-21 18:07:32

标签: ruby-on-rails ruby

我有模特用户。用户包含:name和:second_name字段。我在模型中定义函数

def full_name
    self.name + ' ' + self.second_name
end

当我在用户对象上调用to_json()方法时,我得到{name:' ...',second_name:' ...'}。我如何添加到结果full_name字段?

2 个答案:

答案 0 :(得分:1)

如何在User模型中定义as_json方法并覆盖to_json的默认行为。

所以这将成为:

def as_json(options)
  super(:methods => [:full_name])
end 

供参考也见: http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html

答案 1 :(得分:0)

在用户模型中覆盖.as_json,将以下行添加到您的用户模型中:

def as_json(options)
  super.merge({
      full_name: "#{self.name} #{self.second_name}"
  })
end

在您的控制器中,只需写下:render @user,不要显式调用.to_json