2010-06-02 2 views
0

Я пытаюсь реализовать навигацию, как в Tree Based Navigation, но на основе URL-адресов, определенных в route.rb (с указанием маршрутов, ресурсов, ...).Создать выбор на основе маршрутизации, как?

Можно ли восстановить коллекцию всех маршрутов, определенных в route.rb?

Так что я могу использовать его в избранном, как это:

<%= f.collection_select :url, Route.all, :url, :name %> 

TNX!

ответ

0

Thanx to the hint of David Lyod Я решил это!

Вот мой код:

хелпер-метод

# Methods added to this helper will be available to all templates in the application. 
module ApplicationHelper 

    def routes_url 
    routes = ActionController::Routing::Routes.routes.collect do |route| 
     segs = route.segments.inject("") { |str,s| str << s.to_s } 
     segs.chop! if segs.length > 1 
     segs.chomp("(.:format)") 
    end 
    routes.delete_if {|x| x.index(':id')} 
    return routes.compact.uniq.sort 
    end 
end 

и на мой взгляд, я ставлю:

<%= select("page", "url", options_for_select(routes_url), {:include_blank => true}) %> 
1
ActionController::Routing::Routes.routes 

Показать список доступных маршрутов для приложения. Будет потребоваться некоторый синтаксический разбор, чтобы вытащить соответствующие данные.

Смежные вопросы