Ruby on rails 如何在RubyonRails中生成控制器动作数组?

Ruby on rails 如何在RubyonRails中生成控制器动作数组?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的Rails 4应用程序中,我有许多静态页面,这些页面应该可以被谷歌索引,也可以不被谷歌索引。为此,我使用了一个变量indexable,但可能有更好的方法: class PagesController < ApplicationController def home indexable = true end def about_us indexable = true end def secret_stuff indexable = fa

在我的Rails 4应用程序中,我有许多静态
页面
,这些页面应该可以被谷歌索引,也可以不被谷歌索引。为此,我使用了一个变量
indexable
,但可能有更好的方法:

class PagesController < ApplicationController

  def home
    indexable = true
  end

  def about_us
    indexable = true
  end

  def secret_stuff
    indexable = false
  end

end

谢谢你的帮助。

也许一个before\u过滤器会有意义吗

class PagesController < ApplicationController
  before_filter :set_indexable, except: [:secret_stuff]

  def home
  end

  def about_us
  end

  def secret_stuff
  end

  private 

  def set_indexable
    @indexable = true
  end

end
class PagesController
这可能是错误的做法。其中许多操作无法通过
GET
实现。与rake routes类似的东西怎么样?不是行动是可转位的,而是在行动中结束的路径,可能有很多。@tadman:好的,同意。但我如何才能将这些路径放入数组中?@anthony在这里有了一个解决方案的开始。您可能想扩展路由系统,以允许支持像
可索引:true
这样的标志。@塔德曼:好的,听起来不错,但我在Rails的
路由
和“标志”上找不到任何东西。你能给我举个例子吗?你必须在Rails路由系统中彻底破坏,修补它以包括它通常没有的选项。不过,这可能使原本应该是一个简单的问题变得过于复杂。一种简单的方法是在
routes.rb
文件中使用特定样式的注释,您可以使用实用程序脚本查找和处理这些注释,并将它们转换为地图。不过,您必须触发每个操作以发现其是否可索引。这是可疑的效用。
class PagesController < ApplicationController
  before_filter :set_indexable, except: [:secret_stuff]

  def home
  end

  def about_us
  end

  def secret_stuff
  end

  private 

  def set_indexable
    @indexable = true
  end

end