Как определить собственные помощники маршрутизации в рельсах 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