甚至简单的页面都需要Rails中的路由?

时间:2011-05-24 21:57:11

标签: ruby ruby-on-rails-3 routes

我想为一个讨论项目团队的网站页脚做一个简单的页面。这样的页面通常只有信息,没什么太花哨的。

我没有为它制作路线,基本上将它保存为team.html.rb在文件夹中:/app/views/team.html.rb

我不确定这是否是保存此类文件的正确位置。这种一次性文件的最佳位置在哪里?

另外,我是否还需要为此制作路线和控制器,或者我可以跳过这么简单的页面吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

我正在使用控制器来传送静态页面。

以下是类似问题的链接:

How to do static content in Rails?

你还可以做的是将一个静态html文件放入'public'文件夹并像这样引用它:

http://localhost:3000/name-of-static-file

答案 1 :(得分:1)

我认为这不会起作用,因为Rails希望所有请求都通过控制器。最简单的方法是在routes.rb end 中执行类似的操作:

match "/:action" => "pages"

然后在app/views/pages中,您可以放置​​team.html.erb。您还可能需要app/views/pages_controller.rb中的至少一个空白控制器:

class PagesController < ApplicationController
end

关于这一点的好处是,如果你碰巧需要一个“静态”页面的动态内容,你可以定义一个控制器方法来加载它。

如果您的网站看起来有点过分,那么您可能需要更轻松的框架,例如Sinatra

答案 2 :(得分:1)

路由指向控制器操作,而不是视图。

对/ team的请求将(iirc)指向应用程序#团队。如果该操作不存在,您将收到错误。如果您已定义该操作(通过调用render,它将在/ app / views / application中查找名为team.html [.erb | .json | .etc]的文件

正如相关主题所指出的那样,thinkbot的high_voltage gem非常适合提供静态页面。