微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 如何更改覆盖’to_json’方法的值?

我正在使用 Ruby on Rails 3,我想覆盖to_json方法.

这时我使用以下代码以避免导出重要信息.

def to_json
    super(
      :except => [
        :password
      ]
    )
  end

如果我想使用该方法更改值,我该怎么办?

例如,我想将用户名大写

:name => name.capitalize

检索这个

@user.to_json

解决方法

如果你想渲染:json => @user在Rails 3的控制器中,你可以覆盖模型中的as_json:
class User < ActiveRecord::Base
  def as_json(options={})
    result = super({ :except => :password }.merge(options))
    result["user"]["name"] = name.capitalize
    result
  end
end

这是一篇关于differences between to_json and as_json的好文章.

原文地址:https://www.jb51.cc/ruby/264953.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐