2009-09-21 52 views
2

我是Ruby on Rails的新手,我確信這個問題很愚蠢,但我無法從我見過的例子中推論出答案,也許我沒有看到很多好的答案。前臺控制器?

我正在處理的網站將在一個側欄中包含「框」(即小部件),其中包含動態內容,並且還會在另一側欄上包含網站中由不同部分處理的部分的鏈接控制器。整個控制器的網站佈局/風格將保持不變。例如,如果我點擊一個鏈接,中心內容將會改變,但網站的其他設計和佈局將保持不變。

我的問題是,如果我要創造這樣一個home控制器將處理頭版和網站的佈局,然後以某種方式產生於特定的控制器的佈局應是被調用,然後指定控制器作爲根控制器routes.rb?我只是想知道如何指定佈局應保持相對相同,以便我不必冗餘併爲每個控制器粘貼相同的佈局代碼。這是IRC上的某個人建議創建一個控制器,但我想知道這是否是正常的做事方式。對於我所關心的所有人來說,答案實際上可以非常簡單,但由於我是新手,我沒有注意到。

我並不真正知道如何正確地說出我的問題,因爲我相對較新的軌道。如果有些事情沒有意義,請告訴我,我會盡力澄清。

謝謝。

回答

3

是的,你可以使用page_controller來做到這一點,並將其設置爲routes.rb中的根網址。

請記住,如果不想爲每個控制器使用單獨的佈局文件,則不需要。如果您在layouts/application.html.erb中創建一個文件,它將在整個應用程序中使用。您可以通過創建根據將自動拾取的控制器命名的其他佈局來重寫它,或者在控制器中設置佈局:other_name來更改它。

+0

這正是我想知道的(也感謝JRL,兩者都讓你高興)。那麼在內容div中,這將根據我的應用程序中的控制器而改變,我將如何顯示基於控制器的內容?我會爲控制器創建一個視圖,然後將它作爲內容div中的一部分進行渲染?讓我知道,如果我沒有任何意義嘿。 – 2009-09-21 01:16:22

+0

我剛看到application.html.erb的一個例子,他們使用yield指令。這回答我的問題,謝謝! – 2009-09-21 01:21:02

1

如果您在佈局文件夾中創建文件application.html.erb,則默認情況下,佈局文件夾中沒有相應佈局文件的任何控制器都將使用它。此外,您也可以手動加入指定控制器使用的佈局:

layout "your_layout_name" 
在控制器

+0

謝謝JRL。如果您可以擴大您的答案以迴應我對安德魯的評論,我將不勝感激。 – 2009-09-21 01:17:42

+0

(抱歉冗餘)我剛看到application.html.erb的一個例子,他們使用yield指令。這回答我的問題,謝謝! – 2009-09-21 01:25:22