Заключите параметр в скобки, чтобы убедиться, что блок будет связан с вызовом метода.

class User
  scope :active, -> { where(active: true) }
end

Запустив rubocop, я получаю следующее предупреждение:

Заключите в скобки параметр -> { where(active: true) }, чтобы убедиться, что блок будет связан с вызовом метода ->.

Я понятия не имею, какое отношение мое определение scope имеет к этому предупреждению. Ты?

Как исправить предупреждение, кроме как отключить галочку, потому что в данный момент это не имеет смысла?


person Andrey Deineko    schedule 05.04.2017    source источник


Ответы (2)


Он хочет, чтобы вы сделали это:

scope :active, (-> { where(active: true) }) 

Лучше отключить предупреждение :)

Этот стабильный лямбда-синтаксис прекрасно работает. Может у вас старая версия rubocop?

Обновление: исправлено в версии 0.49.0.

person Sergio Tulentsev    schedule 05.04.2017
comment
Нет, у меня самая новая версия (от 3 апреля - 0.48.1). Приму через 8 минут :) - person Andrey Deineko; 05.04.2017
comment
Исправление уже слито в мастере rubocop, скоро проверьте новую версию :) - person Ilya; 05.04.2017
comment
Как отключить это предупреждение? Что я должен добавить в .rubocop.yml, чтобы это исправить? - person knagode; 20.04.2017
comment
Странно, все еще получаю это с 0.48.1, собираюсь отключить полицейского - person tirdadc; 21.04.2017
comment
@tirdadc: да, в 0.48.1 он все еще есть. Вам нужна более новая версия. Или мастер. - person Sergio Tulentsev; 21.04.2017

gem update rubocop работал на меня.

person AnthonyM.    schedule 10.07.2017
comment
это правильный ответ, как по мне - person ringe; 10.10.2017