Как определить собственные помощники маршрутизации в рельсах 3?

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

2 ответа

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

Добавьте этот код в конец 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

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

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

# at the bottom of config/routes.rb
module ActionView::Helpers::UrlHelper
    def model_name_path model, args={}
        # your implementation
    end
end
Другие вопросы по тегам