Rails,如何指定在控制器的 JSON 响应中输出哪些字段?

AnA*_*ice 3 ruby ruby-on-rails ruby-on-rails-5

在我的控制器中,我目前有:

invite = Invite.find_by_token(params[:id])
user = invite.user

json_response({
  user: user
})

def json_response(object, status = :ok)
  render json: object, status: status
end
Run Code Online (Sandbox Code Playgroud)

现在,用户正在返回所有用户字段。我只想返回(ID,电子邮件)......我试过:

user = invite.user.select(:id, :email)
user = invite.user.pluck(:id, :email)
Run Code Online (Sandbox Code Playgroud)

两者都不起作用。想法?

小智 6

您可以使用as_json方法在响应中传递所需的属性,例如:

user.as_json(only: [:id, :email])