def jsontest
@users = User.all.limit(10)
render json: @users
end
产量
{
...
"id": 7,
"name": "Sage Smith",
"email": "example-6@railstutorial.org",
"created_at": "2013-10-17T02:29:15.638Z",
"updated_at": "2013-10-17T02:29:15.638Z",
"password_digest": "$2a$10$taHk3udtWN61Il5I18akj.E90AB1TmdL1BkQBKPk/4eZ7YyizGOli",
"remember_token": "118f807d0773873fb5e4cd3b5d98048aef4f6f59",
"admin": false
...
}
但我想从此API中省略某些特定字段,所以我使用
pluck
def jsontest
@users = User.all.limit(10).pluck(:id, :name, :email, :created_at) ###
render json: @users
end
但是当我想让每个对象的属性可以通过哈希键访问时,pluck返回一个仅包含值的数组。
[
...
7,
"Sage Smith",
"example-6@railstutorial.org",
"2013-10-17T02:29:15.638Z"
...
]
那么,如何有效地使用值及其键?
我意识到我可以扫遍@users并在拔出并重新创建哈希值之前获取键,但是我希望有一些方便的方法可以完全满足我的需求。
最佳答案
使用select
而不是pluck
:
def jsontest
@users = User.select('id, name, email, created_at').limit(10)
render json: @users
end
关于ruby-on-rails - 我怎样才能使ActiveRecord的调用也返回要在json中呈现的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20794398/