Итак, я создаю приложение, которое соответствует пользователям. Пользовательские модели имеют 3 атрибута (это в любом случае имеет отношение к моему вопросу: пол: строка
, looking_for_men: boolean
, looking_for_women: boolean
.
в настоящее время у меня есть метод в моей модели, например итак:
def browse
if self.looking_for_men == true && self.looking_for_women == true
if self.sex == "Male"
User.where("looking_for_men = ?", true)
elsif self.sex == "Female"
User.where("looking_for_women = ?", true)
end
elsif self.sex == "Male" && self.looking_for_men == true
User.where("looking_for_men = ? AND sex = ?", true, "Male")
elsif self.sex == "Female" && self.looking_for_women == true
User.where("looking_for_women = ? AND sex = ?", true, "Female")
else
if self.sex == "Male"
User.where("looking_for_men = ? AND sex = ?", true, "Female")
elsif self.sex == "Female"
User.where("looking_for_women = ? AND sex = ?", true, "Male")
end
end
end
Это довольно запутано, как вы можете сказать. Есть ли способ очистить это и превратить в область видимости, например, я - пользователь мужского пола, и я ищу женщин, которые возвращаются только женщины, которые ищут мужчин, когда я задаю такой запрос:
@users = User.all.browse