Используйте ограничения маршрута, чтобы посмотреть объект запроса и посмотреть, есть ли у него параметры URL. Если вы используете спокойные маршруты, вы хотите поставить это «одноразовое» перед спокойным маршрутом. Что-то вроде этого:
get 'users' => 'users#show', constraints: { query_string: /.+/ }
resources :users
Так что это говорит, что если вы спрашиваете «/ пользователи неавтоматическим = Dev?», То он будет соответствовать вашему особому случаю. В противном случае он переходит к вашему нормальному спокойному маршруту к действию индекса. Затем ваше действие # show show должно знать, чтобы выбрать параметр [: opt] и сделать с ним все.
Кроме того, обратите внимание, что регулярное выражение очень свободно, и оно просто проверяет ЛЮБОЙ параметр ... вы захотите затянуть его, чтобы он соответствовал тому, что вы пытаетесь сделать.
Я считаю, что вы можете использовать ': constraints' возможность получить такое поведение. Документация: http://guides.rubyonrails.org/routing.html#segment-constraints. – MurifoX