Как получить именованный маршрут из класса в рельсах? - PullRequest
0 голосов
/ 23 ноября 2010

У меня есть общая частичная для индекса, где я хочу вставить некоторые ссылки. В этих ссылках я хотел бы использовать named_routes, например

link_to "Say hi",things_path(:param1=>:hello, :params2=>:there)

но я не знаю, является ли things_path users_path, place_path или reviews_path, потому что эта часть является общей для всех контроллеров. Есть любой способ получить именованный маршрут, связанный с классом или текущим контроллером. Я хочу что-то вроде этого

link_to "Say hi", path_of(@current_class)(:param1=>:hello, :params2=>:there)

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

Есть несколько подходов к этому.Самая простая вещь - это полагаться на полиморфную маршрутизацию, такую ​​как: link_to "Say hi", @my_object.В этом случае рельсы будут смотреть на класс @my_object и его текущее состояние (new_record?) и использовать соответствующий маршрут и действие покоя.Предполагая, что ваш партиал называется _foo.html.erb, тогда это может быть так просто, как

link_to 'Say hi', foo

... что довольно круто.Этот вопрос задавался ранее, здесь: Полиморфные маршруты в Rails - в представлениях , но я думаю, что трудно найти ответы, не зная волшебных слов "полиморфная маршрутизация": -)

0 голосов
/ 23 ноября 2010

Помощник пути, такой как cars_path, в конечном итоге является просто ярлыком для установки: controller,: action и других параметров, таких как: id. Если вы хотите, чтобы контроллер всегда был равен текущему контроллеру, вы можете просто сказать

link_to "Скажи привет",: action => "index",: param1 =>: hello,: params2 =>: там

Поскольку опция: controller отсутствует, предполагается, что она является текущим контроллером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...