在Ruby on Rails中添加新页面

30 ruby ruby-on-rails ruby-on-rails-3

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

McS*_*tch 42

首先确保您的同事尚未创建控制器来处理静态页面.查看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
Run Code Online (Sandbox Code Playgroud)

然后你需要在app/views标题下创建一个新文件夹pages,你可以在那里添加你的静态页面(app/views/pages).erb.使用a .erb将允许您的新页面使用默认布局.

最后,你需要添加此控制器routes.rb(config/routes.rb)告诉轨到哪里寻找的/help页面:

match '/help' => 'pages#help'
Run Code Online (Sandbox Code Playgroud)

  • 当运行`rails g controller pages`时,Rails 4抱怨`match`路由.`get'/ about'=>'pages#about'`的作品. (3认同)

edg*_*ner 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"
Run Code Online (Sandbox Code Playgroud)

并提出你的意见app/views/static.你也可以使用普通的html或erb.一个名为的视图help.html.erb将在http://yourdomain.com/help

您创建的任何视图文件app/views/static都可用,无需修改路由或控制器.