繁体   English   中英

Ruby on rails简单页面没有数据库模型

[英]Ruby on rails simple page without database model

我是Ruby和Rails的初学者,所以这可能是一个简单的问题。

我应该如何设置一个不需要任何自己的数据库表的简单页面? 以我的情况为例,我有一个存储歌曲和艺术家的网站。 我只想要一个没有智能的简单帮助页面,只需要静态HTML。 我还需要一个BROWSE页面,用户将选择是否浏览艺术家或歌曲。 此页面将没有任何数据库表,但是它将具有来自AZ的链接列表,提供每个字母的帖子数,因此它需要为其本身不拥有的表进行数据库交互。

我应该只为HELP和BROWSE创建控制器,还是需要模型? 使用Rails 2,我应该使用哪些脚本/生成工具,我应该让他们为我做什么?

我通常创建一个PagesController来显示静态页面,如about,faq或privacy。

您需要做的是使用生成控制器

script/generate controller pages

然后在config/routes.rb添加以下config/routes.rb

map.resources :pages, :only => :show

在您的PagesController中

def show
  # filter the params[:id] here to allow only certain values like
  if params[:id].match /browse|help/
    render :partial => params[:id]
  else
    render :file => "/path/to/some/404_template", :status => 404
  end
end

然后你只需要在app/views/pages/添加部分app/views/pages/

#in /app/views/pages/_help.html.erb

<p>This is the help section</p>

我过去曾使用过如下所示的方法。 config/routes.rb设置命名路由:

map.page ':page', :controller => 'pages', :action => 'show',
         :page => /browse|help/

- 表示:page参数被约束为某些值(URL /browse/help )。 使用此路线,您可以创建如下链接:

<%= link_to 'Help', pages_path('help') %>

最后创建一个控制器( app/controllers/pages_controller.rb ):

class PagesController < ApplicationController
  def show
    render params[:page] # => renders /app/views/pages/<page>.html.erb
  end
end

如果需要更大的灵活性,可以在控制器中更改show方法。 例如,您可能希望对不同的页面使用不同的布局。 对于该场景,您可以根据incoming :page参数的值分支逻辑。

控制器和模型在Rails中几乎没有连接。 这只是一个惯例。 因此,您可以轻松创建一个控制器,该控制器不会与任何型号连接。

好吧,如果它是纯静态的(如在* .html中),你可以将它添加到你的公共文件夹中。 例如:

public / test.html public / hello.html public / about.html

每个控制器都没有强制要求模型。 它只是一个易于联系的惯例

让我们考虑您要显示的页面是about_us

添加控制器about_us_controller.rb与它在routes.rb中提到的

添加一个关于_us / index.html.rb的视图

如果你想让视图不遵循任何布局,只需说

 render :layout => false

在你的about_us.rb中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM