Проверьте параметр запроса - PullRequest
0 голосов
/ 15 мая 2019

Я хочу проверить параметры заголовка запроса. Если атрибут отсутствует, я не принимаю запрос.

Текущая реализация здесь:

class SampleController < ApplicationController
    before_action :render_message, unless: :check_header
    // GET method 
    def index
        ....
    end

    def check_header
        return request.headers["key1"] && request.headers["key2"] && request.headers["key3"]
    end

    def render_message
        render json: { message: "missing the custom attribute in the header" }, status:400
    end

Как я могу украсить этот код?

1 Ответ

0 голосов
/ 15 мая 2019

Я бы, вероятно, переписал метод примерно так:

def check_header
  required_headers = %w[key2 key2 key3]
  required_headers.all? { |key| request.headers[key] }
end

Обратите внимание, что вышеприведенная версия имеет то же поведение, что и ваш пример. Если вам действительно нужно проверить наличие значений (пустая строка все еще верна), то вам также нужно проверить present?.

def check_header
  required_headers = %w[key2 key2 key3]
  required_headers.all? { |key| request.headers[key].present? }
end

И я бы подумал об использовании константы вместо локальной переменной required_headers.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...