Создать выбор на основе маршрутизации, как? - PullRequest
0 голосов
/ 02 июня 2010

Я пытаюсь реализовать навигацию, как в Древовидная навигация , но на основе URL-адресов, определенных в rout.rb (именованные маршруты, ресурсы, ...).

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

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

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

Tnx!

Ответы [ 2 ]

1 голос
/ 02 июня 2010
ActionController::Routing::Routes.routes

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

0 голосов
/ 02 июня 2010

Спасибо намек Дэвид Лёд Я решил это!

Вот мой код:

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

# 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})  %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...