Скорее всего, это легко сделать, но мне трудно даже четко сформулировать, что приводит меня к получению всевозможных полугермаинов, но не совсем того, что я пишу в сообщениях SO при поиске.
У меня есть ресурс, мы просто будем использовать пользователя как простой для обсуждения вариант использования.Мне нужны оптимизированные для SEO URL-адреса, поэтому вместо ~ / users /: id у нас есть ~ / users /: name , где действие show на моих контроллерах пользователей выполняет User.find_by_name (: name).Прекрасно работает.
В различных частях приложения я хочу перенаправить конечного пользователя обратно на мой ресурс.Документы, кажется, указывают, что я должен сделать
redirect_to @user, :notice => "your page is now DIAMONDS!"'
Проблема здесь в том, что автоматически появляется значение: id ресурса, а не то, что я ищу,Мне интересно, есть ли способ просто определить маршрут в моем файле маршрутов, который знает о моем желании использовать свойство name - и затем просто перенаправить к сгенерированному помощнику route_url.Но я не знаю, как это сделать.
А пока я прибегаю к этому:
flash[:notice] = "Your account is now DIAMONDS. *fist bump*"
redirect_to :action => :show , :id => @user.name
Для меня это не идеально, так как это хорошонемного повторяющегося кода (у меня есть много элементов пользовательского интерфейса, которые будут ссылаться на мой ресурс), и потому что я не могу понять, как включить flash как часть вызова метода redirect_to - каждую комбинацию фигурных скобокж / в redirect_to, который включает в себя флеш-бомбы на меня.
Я не думаю, что это специфично для моей проблемы, но я делаю это на Rails 3 на случай, если это действительно имеет какое-то значение с точки зрения доступных мне вариантов.
Извините заnoobishness:)