именованные маршруты из строки с объектом - PullRequest
7 голосов
/ 27 января 2012

Я хочу создать именованный маршрут из строки и передать в него объект

Я рендеринг частичного с локальным "ресурсом"

есть. render :partial => "listing", :locals => {:resource => @resource}

внутри _listing.html.haml я использую метод self.send

self.send("#{resource.class.to_s.downcase}_path()")

это прекрасно работает и создает ресурсы с именем route то есть. article_path ()

но для этого маршрута нужен объект, переданный в маршруте то есть. article_path (статья)

Я пытаюсь это

self.send("#{resource.class.to_s.downcase}_path("+resource+")")

и получите ошибку невозможно преобразовать статью в строку

есть предложения?

Ответы [ 2 ]

11 голосов
/ 27 января 2012

Вы должны передать аргументы следующим образом:

self.send("#{resource.class.to_s.downcase}_path", resource)
3 голосов
/ 03 сентября 2014

Вы можете упростить ответ Джефа (вам не нужно использовать ресурс) примерно так:

send("#{controller_name}_path")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...