Как создать область для отношения has_many в rails 5? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть Group модель, в которой много Events, и я пытаюсь найти группы, которые проводят публичные события только через что-то вроде Group.public_events

Вот моя группа:

class Group < ApplicationRecord
  has_many :events, dependent: :destroy
end

И вот мое событие:

class Event < ApplicationRecord
  belongs_to :group
end

Я хотел бы сделать scope :public_events, чтобы найти .where(private: false) в событии, но должно ли это пойти на группу или событие?

Ответы [ 3 ]

0 голосов
/ 15 февраля 2019

Пойдёт на Событие вот так.

class Event < ApplicationRecord
  belongs_to :group
  scope :public_events, -> { where(private: false) }
end
0 голосов
/ 15 февраля 2019

Вы можете использовать это.

scope :public_events, ->(parameter_if_any) {
  where({ private: parameter_if_any||false } )
}
0 голосов
/ 15 февраля 2019

вы можете положить в Event.rb

class Event < ApplicationRecord
  belongs_to :group
  scope :public_events, lambda { where('private = ?',false)}
end

и вы можете назвать его

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