2017-02-03 2 views
0

Мои новости модель:
has_one :categoryКак передать несколько значений в URL?

Категория Модель:
belongs_to :news

Scope выглядит следующим образом:

scope :category, -> (category_name) { joins(:category).where('categories.name = ?', category_name)} 

Индекс действия контроллера News:

def index 
    news = News.filter(params.slice(:tag, :category, :days_ago)) 
    render json: news 
end 

H ow я могу передать несколько категорий в URL-адресе, чтобы показывать новости, которые имеют эти категории? нравится эта /?category=lorem,ipsum,dolor или аналогичный

ответ

1

Params проходящего (главное здесь [] в конце имени вара):

params: { 'categories[]': ['lorem', 'ipsum', 'dolor'] } 

URL:

?categories[]= lorem&categories[]=ipsum&categories[]=dolor 

который в Params будет выглядеть, как

"categories"=>['lorem', 'ipsum', 'dolor'] 
+0

Пропущенные параметры в адресе, указанном вами. Не работали «Начал GET»/news? Categories [] = lorem & categories [] = ipsum' , в котором были выпущены следующие новости SQL «SELECT». * FROM «news» ' , но он должен был выбрать только новости с предоставленные категории –

+0

где вы разбираете параметры? Как узнать, как вы его используете? :) –

+0

@RomanKanafotskiy вам следует: 'Model.where (категория: params [: categories])' –

Смежные вопросы