Как определить собственные помощники маршрутизации в рельсах 3? - PullRequest
5 голосов
/ 24 июня 2011

Я использую polimorphic_path и он немного глючит. Этот метод требует некоторого помощника маршрута, который не определен. Как я могу определить (как обычный метод) собственный помощник маршрута, который будет использоваться как "имя_модели_путей, имя_модели_урла и т. Д."?

Ответы [ 2 ]

4 голосов
/ 21 января 2013

Это решение сработало для меня.

Добавьте этот код в конец файла config/routes.rb. Обязательно замените MyApp именем вашего приложения.

MyApp::Application.routes.named_routes.module.module_eval do
  def model_name_path(*args)
    # Your code here
  end

  def model_name_url(*args)
    # Your code here
  end
end

MyApp::Application.routes.named_routes.instance_eval do
  @helpers += [:model_name_path, :model_name_url]
end

Эти пользовательские методы будут доступны в контроллерах, представлениях и тестах.

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

Я знаю один возможный ответ для _path, но он не работает для меня для _url.Кто-нибудь знает почему?

# at the bottom of config/routes.rb
module ActionView::Helpers::UrlHelper
    def model_name_path model, args={}
        # your implementation
    end
end
...