【问题标题】:ActiveRecord as_json return different column namesActiveRecord as_json 返回不同的列名
【发布时间】:2012-04-24 18:52:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby activerecord


    【解决方案1】:
    record.as_json(root: false, :only => [:user], :methods => [:message_html])
    

    并在记录中定义该方法。

    【讨论】:

      【解决方案2】:

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

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

      只需构建一个二元哈希并将其交给 JSON 渲染系统。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-23
        • 2020-11-13
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        相关资源
        最近更新 更多