2014-04-13 37 views
2

我剛剛啓動了一個項目,並創建了一個pages_controller和控制器中我有這樣的:家庭,約和聯繫人頁面控制器動作

class PagesController < ApplicationController 

def home 

end 

end 

這些都是我的路線:

devise_for :users 
    root to: "pages#home" 

我創建了頁面控制器,以爲我可以使用它來創建一個主頁,關於頁面&聯繫頁面。從我有限的經驗來看,你的控制器內部的行爲似乎應該堅持new,create,destroy,delete,show,index,edit and update 像上面所做的那樣,命名爲Home, contact or about這樣的行爲是不好的?你平常都做什麼?

回答

1

在Rails應用程序中沒有100%RESTful路線沒有任何問題。特別是針對您的確切用例,即收集少數「靜態」頁面。你絕對是在正確的軌道上。我想考慮改變的唯一辦法是將聯繫頁面分發給自己的控制器(如果可能的話)(如果它有一個表格) - 如果它只是聯繫信息,我會離開它的位置。

+0

我在我的控制器,頁面/關於視圖和我的路線中的頁面資源添加了一個關於動作。如何在我的瀏覽器上訪問此視圖? localhost:3000/about或localhost:3000/pages/about似乎可行,當我搜索我的耙路輸出時,我看不到任何可用的路線。 – user3408293

+0

你需要爲每個相關動作添加一個路由,在你的'config/routes.rb'文件中,比如'get'about',':pages#about',如:about'。官方文檔在http://guides.rubyonrails.org/routing.html - 祝你好運! –

+0

嗯,我的印象是'資源'會讓控制器可用。我猜'資源'只能在我們的Rails應用程序中使用RESTful操作? – user3408293

0

我喜歡爲靜態頁面做的事情是隻使用一個動作,並用它來顯示不同的視圖。這不是很好的動態視圖:

#config/routes.rb 
root to: "application#static", page: "home" 

pages = %w(about contact) 
for page in pages do 
    get page, to: "application#static", page: page #-> routes all to `static` method in `ApplicationController`, with "page" param 
end 

#app/controllers/application_controller.rb 
def static 
    case params[:home] 
    when "about" 
     page = "about" 
    when "contact" 
     page = "contact" 
    else 
     page = "home" 
    end 
    render "pages/#{page}" 
end 

然後你會成爲一個文件夾中views/pages &進行所需的頁面在那裏! DRY &簡單!

相關問題