我想要做的事:Rails 3中的控制器路由列表?
我創造一些控制器,例如:
- 首頁
- 關於
- 畫廊
- 聯繫
現在我想自動創建導航。那麼有沒有辦法以編程方式獲取控制器/操作列表來構建此導航?
我不想每次添加控制器都修復導航。
我想要做的事:Rails 3中的控制器路由列表?
我創造一些控制器,例如:
現在我想自動創建導航。那麼有沒有辦法以編程方式獲取控制器/操作列表來構建此導航?
我不想每次添加控制器都修復導航。
你可以嘗試這樣的事情:
HomeController.action_methods.each do |action|
url_for(:action => action)
end
你把這個放在哪裏?在routes.rb中? – 2012-01-24 15:28:13
這裏是一個內襯,讓你根據你的路由文件中的所有控制器。我發現我沒有價值,所以我加了救援,然後拒絕了那些被救出的空的。 uniq刪除任何重複項。
Rails.application.routes.routes.collect { |r| r.defaults[:controller] rescue '' }.reject! { |c| c.empty? }.uniq
添加了一個標題,使它們更適合您的導航。
Rails.application.routes.routes.collect { |r| r.defaults[:controller].titlecase rescue '' }.reject! { |c| c.empty? }.uniq
這是僅用於管理員名稱空間中的用戶。
Rails.application.routes.routes.collect { |r| r.defaults[:controller].titlecase rescue '' }.reject { |c| c.empty? }.uniq.reject { |n| !n.include?('Admin/') }.map { |i| i.gsub('Admin/', '') }.sort
你知道了嗎?我需要返回一個所有控制器名稱的數組 – stephenmurdoch 2011-03-09 23:33:56