Rails - 如何将控制器中的所有视图绑定到路由

时间:2013-10-23 17:13:08

标签: ruby-on-rails ruby

您好我是Rails的新手。我有这个名为static_pages的控制器,其中有不同的视图(酒店,咖啡馆,博物馆)。我目前正在routes.rb

中这样做
match '/school',    to: 'static_pages#school',    via: 'get'
match '/hotel',    to: 'static_pages#hotel',    via: 'get'
match '/museum',   to: 'static_pages#museum',   via: 'get'
match '/peace', to: 'static_pages#peace', via: 'get'
match '/cafe',  to: 'static_pages#cafe',            via: 'get'
match '/investor',  to: 'static_pages#investor',            via: 'get'

我如何做“如果在静态页面控制器中,将视图名称绑定到特定URL”。要删除这6行并将其转换为1行,其中表示对于控制器中的每个方法,生成路径。

这里有特殊的技巧吗?

1 个答案:

答案 0 :(得分:0)

routes.rb是一个常规的ruby文件,因此您可以执行与

类似的操作
['school', 'hotel', 'museum', etc].each do |route|
  match route, to: "static_pages##{route}", via: 'get'
end

如果你想缩短它。

编辑:

如果你想获得所有方法而不是硬编码,你可以这样做:

(ControllerName.methods - ActiveRecord::Base.methods).each do |route_sym|
  match route_sym.to_s, to: "static_pages##{route_sym.to_s}", via: 'get'
end