在Ruby on Rails中添加新页面

时间:2011-05-06 12:58:37

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

Ruby on Rails相当新,我被困在一个简单的任务上。基本上我正在研究同事的应用程序,需要添加一个向用户显示应用程序工作方式的其他页面。我已经编写了HTML和样式。我只是不知道如何将其完全添加到Rails并正确配置路由。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:40)

首先确保您的同事尚未创建控制器来处理静态页面。在app/controllers下查找标题为directories_controllerpages_controller的控制器,等等。如果他/她有,请按照您的同事已设置的模式(您可能想问他/她)在那一点上的指导)。如果没有这样的静态页面控制器,请遵循以下建议。

您可以创建一个名为PagesController的控制器,用于定义与路径匹配的方法。例如,您的附加页面可能被称为“帮助”,在这种情况下,您可以像这样定义控制器:

class PagesController < ActionController::Base
  def help
    # put any code here that you need 
    # (although for a static view you probably won't have any)
  end
end

然后,您需要在标题为app/views的{​​{1}}下创建一个新文件夹,然后您可以在其中添加pages扩展名的静态页面(app / views / pages)。使用.erb将允许您的新页面使用默认布局。

最后,您需要将此控制器添加到.erb中的routes.rb,以告诉我们在哪里查找(config/routes.rb)页面:

/help

答案 1 :(得分:19)

静态页面

如果您的网页真的是静态的(其中没有动态),您可以将它们放在/public目录中,然后直接访问它们。

可以../public/help.html

访问http://yourdomain.com/help.html中的文件

半静态页面

如果您想使用布局但只提供静态内容,可以按如下方式为控制器,路径和视图创建。

# static_controller.rb
class StaticController < ApplicationController
  def show
    render params[:page]
  end
end

# towards the end of routes.rb
get "/:page" => "static#show"

并在app/views/static中发表您的观点。你也可以使用普通的html或erb。名为help.html.erb的视图将在http://yourdomain.com/help

处提供

您在app/views/static下创建的任何视图文件都可以在不修改路由或控制器的情况下使用。