簡體   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