Как переопределить метод as_json или to_json, чтобы ответить на него без включения указанной информации?

я использую Ruby on Rails 3, и я хотел бы переопределить (возможно, в файле модели) метод as_json или to_json , чтобы ] response_to HTTP-запрос без включения некоторой информации.

В моей учетной записи модель у меня есть

def as_json(options = {})
  super(
    :except => [
      :password
    ]
  )
end

В моем контроллере у меня есть

format.json {
  render :json => @account, :status => 200
}

Когда я делаю запрос, например, на /account/1.json Я также вернул атрибуты пароля, которые мне не нужны по соображениям безопасности.

Итак, как я могу предотвратить включение указанной информации?


Я могу это сделать, и это работает

format.json {
  render :json => @account.to_json(:except => [:password]), :status => 200
}

, но мне нужно рефакторинг .

10
задан user502052 4 March 2011 в 12:52
поделиться