2010-08-23 13 views
0

我完全按照教程進行操作:http://github.com/binarylogic/authlogic_example使用Ruby on Rail的Authlogic gem,如何在所有頁面上顯示登錄表單?

但是我想知道當有人沒有登錄時,如何才能讓登錄表單出現在所有頁面上?

我搜索了Google並查看了很多論壇的答案,但唯一能找到的解決方案要求我爲每個具有登錄表單的頁面定義​​。

我想要做的就是將表格放在application.html.erb文件中,只有當人們註銷時(我已經設法做到這一點)纔會顯示它。

不過,我想只有把​​在一個控制器,如ApplicationController,因爲它是非常非RESTful將不得不把這段代碼的每一個頁面上。如果我將表單代碼保留在application.html.erb中,並且沒有爲控制器中的頁面定義代碼,那麼該頁面將顯示錯誤。

我不想爲每個頁面定義它,因爲如果我決定擺脫登錄表單或其他東西,如果必須從每個頁面中刪除它,將需要很多工作。

簡而言之:我想將登錄表單放在我網站的每個頁面上,只需要將​​放在一個控制器中。

謝謝。

回答

1

ApplicationController,你可以做到以下幾點:

before_filter :prepare_new_session 

def prepare_new_session 
    @user_session = UserSession.new if current_user.blank? 
end 

這會給你每一個動作@user_session對象(如果用戶當前未登錄)。這樣,您可以將該表格放入layouts/application.html.erb文件中,以將該表格放在每個頁面上。

+0

謝謝。這正是我需要的。 :) – Felix 2010-08-24 00:37:39

相關問題