2010-08-23 12 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

相关问题