ActiveRecord as_json返回不同的列名

时间:2012-04-24 18:52:50

标签: ruby-on-rails ruby activerecord

我正在尝试返回ActiveRecord的JSON表示,但是我没有让JSON字符串包含模型的Key列名,而是希望每列显示不同的内容。有没有办法做到这一点?这是我的示例行

record.as_json(root: false, :only => [:message, :user])

我基本上希望它返回消息和用​​户列,但我想在获取它们时将其称为其他内容。

2 个答案:

答案 0 :(得分:1)

record.as_json(root: false, :only => [:user], :methods => [:message_html])

并在记录中定义该方法。

答案 1 :(得分:1)

我认为你过于复杂了。你只想要两列,为什么不手动呢?

def some_controller
    #...
    json = {
        :new_name_for_message => r.message,
        :new_name_for_user    => r.user
    }
    render :json => json, :status => :ok
end

只需构建一个双元素Hash并将其移交给JSON渲染系统。