Я хотел бы добавить еще один явный параметр запроса к моему маршруту.
Сейчас у меня есть это:
Rails.application.routes.draw do
scope :format => true, :constraints => {:format => :json} do
get 'proxies/random(?type=:proxy_type)' => 'proxies#random'
Что я хочу сделать, это добавить еще один (?origin=:origin)
параметр запроса.Я просто не могу найти какую-либо документацию или примеры по этому поводу.
Я верю, что у меня должно быть что-то вроде этого:
Rails.application.routes.draw do
scope :format => true, :constraints => {:format => :json} do
get 'proxies/random(?type=:proxy_type&origin=:origin)' => 'proxies#random'
или, может быть, это:
Rails.application.routes.draw do
scope :format => true, :constraints => {:format => :json} do
get 'proxies/random(?type=:proxy_type)(?origin=:origin)' => 'proxies#random'
Какой правильный способ сделать это?
Кстати, вот что я делаю в моем контроллере:
[...]
before_filter :find_randomly, only: :random
[...]
def find_randomly
if params[:origin].nil? or params[:origin].blank?
relation = ProxiesCatalogueProxy.where(blacklisted: false)
else
relation = ProxiesCatalogueProxy.where(blacklisted: false, origin: params[:origin])
end
@proxy = if params[:type].nil? or params[:type].blank?
relation.order("RAND()").first
else
relation.where(proxy_type: params[:type]).order("RAND()").first
end
end
Кроме того, кто-то может предоставить какой-либо хороший ресурс /материал на эту тему?Thx.