我有一些静态页面,我试图像团队一样,关于我们,服务条款等等。
我正在尝试让一个控制器处理静态页面,但我缺少一些技术诀窍。
这是我做的:
在routes.rb中,在结束之前我添加了这个:
match "/:action" => "pages"
然后我创建了一个名为pages_controller.rb的控制器
目前它是空的。我需要做的是识别/ pages / team或pages / about_us等请求并重定向到正确的静态页面。我怎么能这样做?
谢谢!
答案 0 :(得分:5)
我就是这样做的:
match '/pages/:page' => "pages#page"
然后基于params[:page]
我渲染不同的静态视图。
对于静态页面数量较少的网站,这对我有用。
当然,您可以明确命名您的路线:
match '/about-us' => "pages#about_us"
然后为Pages控制器中的每个路由声明一个空方法:
def about_us
end
但我更喜欢第一种方式。
答案 1 :(得分:0)
另一种可能的方法是在路线的底部放置这样的东西:
map.connect'* path',: controller => '您的单个控制器名称',:action => '显示'
* path基本上表示要选择上面路线声明中尚未涵盖的任何内容。
我很确定:action => 'show'表示完全跳过控制器(因此不需要空控制器方法),只需在与控制器相同的路径中呈现具有相同名称的模板。
我甚至让它与子目录一起工作......
app / views /您的单个控制器名称/ some-new-subdir / foo.html.erb例如会找到该路线的匹配项: