0

您好,我对 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 行的东西,它表示对于控制器中的每个方法,生成一个路由。

这里有什么特别的技巧吗?

4

1 回答 1

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
于 2013-10-23T17:23:08.350 回答