2011-07-08 81 views
2

這更多的是一個令人困惑的問題,與我無關。 我想要做的是不通過rails呈現的頁面,以便它們沒有默認頁眉和頁腳到我製作的每個頁面。如何在Rails應用程序之外創建頁面

所以我有一個網站,你可以發佈的東西,但是當你去根(www.localhost:3000 /)我想你必須要麼使用一個帳戶登錄或創建一個帳戶。這些頁面有一個完全獨立的頁眉和頁腳,他們幾乎應該是一個不同的網站,因爲他們確實與真實網站沒有任何關係,除非在訪問它們之前通過它們。

我在想,這些頁面需要在公衆文件夾,但我真的不知道。

感謝

回答

2

您可以把靜態的html文件public/如你所說,但更好的方法是畢竟使用Rails的,只是不同的佈局。

使用Rails,你會產生諸如app/views/layouts/application.html.erb文件,它使用你的應用程序的頁眉和頁腳。然而,Rails並不強迫你一直使用這種佈局,除非你想。

例如,可以考慮像app/views/layouts/not_logged_in.html.erb創建另一個佈局。現在,你可以在處理登錄的控制器使用此新的佈局,並簽署UPS:

class LoginController < ApplicationController 
    layout 'not_logged_in' 

    # def create, show, etc. 
end 

class SignUpController < ApplicationController 
    layout 'not_logged_in' 

    # def create, show, etc. 
end 

這兩個控制器現在將使用not_logged_in.html.erb佈局,而其他所有的控制器將使用application.html.erb

它也可以不使用佈局在所有的控制器:

class LayoutLessController < ApplicationController 
    layout nil 
end 
+0

有沒有辦法,只對特定的控制器頁面的佈局說明了什麼?我嘗試佈局'不同',:只=>'特定','頁' – Vasseurth

+0

@Planetpluto是的,這是可能的。但是,您必須使用'render:layout =>'not_logged_in''將其設置爲單個操作。 – vonconrad

0

不能編程在公共目錄頁(即您服務.html文件,沒有註釋)。根據我對您的要求的理解,絕對可以通過意見來完成。所有你需要做的是建立在視圖/佈局目錄,並指向文件不同的佈局文件在您的控制器像這樣:

class MyController < ApplicationController 

    layout "differentLayout" 

    ... 

end 

裏面differentLayout.html.erb你需要不同的頁眉和頁腳諧音。

相關問題