我正在尝试做什么:
我创建了一些控制器,例如:
现在我想自动创建导航。那么有没有办法以编程方式获取控制器/操作列表来构建此导航?
每次添加控制器时,我都不想修复导航。
答案 0 :(得分:1)
您可以尝试这样的事情:
HomeController.action_methods.each do |action|
url_for(:action => action)
end
答案 1 :(得分:0)
这是一个单行班轮,根据您的路线文件为您提供所有控制器。我发现我有一个零值,所以我加入了救援,然后拒绝了那些获救的空人。 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