Вот мои прицелы в News
модели:Rails условия сферы применения
scope :category, -> (category_names) { joins(:category).where('categories.name IN (?)', category_names)}
scope :tag, -> (tag_name) { joins(:tags).where('tags.name = ?', tag_name)}
Вот GET
запрос: localhost:3000/news?category[]=sit&tag_list=ipsum
[
{
"id": 8,
"tag_list": "ipsum",
"category": "sit"
},
{
"id": 9,
"tag_list": "",
"category": "sit"
}
]
Моя index
действие:
news = News.filter(params.slice(:tag_list, :category, :days_ago))
Я хочу получать новости, которые удовлетворяют BOTH из условий - должны отображаться только те новости, которые имеют category="sit"
AND tag_list="ipsum"
.
Каков наилучший способ достичь этого?