模型对象奇怪的结果

Model Object weird result

我有这个型号:

class User < ActiveRecord::Base
  TYPE = {:admin => "Administrator", :owner => "Owner", :client => "Customer"}

  # some codes here
end

当我在 rails 控制台中 运行 下面的代码时:

User::TYPE

输出:

{:admin => "Administrator", :owner => "owner", :client => "Customer"}

当我在控制器中添加代码时:

 User::TYPE

这是输出:

[
  {
    "user_types": {
      "user": "Administrator",
      "owner": "owner",
      "client": "Customer"
    }
  },
  {
    "user_types": {
      "user": "Administrator",
      "owner": "owner",
      "client": "Customer"
    }
  },
  {
    "user_types": {
      "user": "Administrator",
      "owner": "owner",
      "client": "Customer"
    }
  }
]

而我只需要:

{
    "user_types": {
      "user": "Administrator",
      "owner": "owner",
      "client": "Customer"
    }

我在这里做错了什么。我也试过 User::TYPE 但我没有得到正确的结果。

更新:

这是我的控制器代码:

def user_types
  @user_types = User::TYPE
end

在我看来要显示结果,我用rabl来显示 json:

object @user_types => false

node(:user_types) {@user_types}

这是输出:

[
  {
    "user_types": {
      "user": "Administrator",
      "owner": "owner",
      "client": "Customer"
    }
  },
  {
    "user_types": {
      "user": "Administrator",
      "owner": "owner",
      "client": "Customer"
    }
  },
  {
    "user_types": {
      "user": "Administrator",
      "owner": "owner",
      "client": "Customer"
    }
  }
]

我只想这样输出:

 {
    "user_types": {
      "user": "Administrator",
      "owner": "owner",
      "client": "Customer"
    }
  }

Rabl 正在映射 @user_types

在你的情况下,应该是:

# xxxx.rabl
object false

node(:user_types) {@user_types}

文档:https://github.com/nesquena/rabl#object-assignment