Как написать стабильную область лямбда-обертки, которая является композицией других имен области - PullRequest
1 голос
/ 22 февраля 2020

Простой пример для иллюстрации, это на самом деле не то, что я пытаюсь сделать:

У меня есть две области действия на пользовательской модели:

scope :unarchived, -> { where archived: false }
scope :active, -> { where active: true }

Для удобства и сухости, Мне нужна область под названием: awake, представляющая собой комбинацию User.unarchived.active, записанную в лямбда-нотации stabby. ПРИМЕЧАНИЕ, я знаю, что могу написать что-то вроде этого:

def self.awake
  self.unarchived.active
end

Я хотел бы знать, возможно ли это и как это возможно в определении объема лямбда-выражения, и если нет, я был бы признателен объяснение или ссылка на то, почему это не так.

1 Ответ

1 голос
/ 22 февраля 2020

Я только что понял, это прямо вперед. Мне просто нужно было заметить, что внутри лямбда-выражения есть выражение, которое возвращает объект запроса / критерия. просто написав:

scope :awake, -> { self.unarchived.active }

или даже проще, как указано ниже:

scope :awake, -> { unarchived.active }

делает свое дело.

...