我有一个带有 Backbone.js 前端的简单 rails 3.2 应用程序。我before_filter
在后端定义了以下和助手:
# my before_filter placed in most controllers
def require_user
unless logged_in?
redirect_to '/#login'
end
end
def logged_in?
!!current_user
end
def current_user
@_current_user ||= session[:user_id] && Appuser.find_by_id(session[:user_id])
end
这对于限制登录用户对大多数操作的访问非常有用。但是,我还在<script>
我的主应用程序模板 (haml) 底部使用标签将数据引导到我的 Backbone.js 集合中:
!!!
%html{:lang => "en"}
%head
%title InfoUser
= stylesheet_link_tag "application", :media => "all"
= javascript_include_tag "application"
= csrf_meta_tags
%script
$(document).ready(function(){ App.init(); });
%body
-# Layout markup
:javascript
projects.reset(#{Project.all.to_json})
groups.reset(#{Group.all.to_json})
users.reset(#{User.all.to_json})
= render "layouts/templates"
问题是,即使未经身份验证的用户访问应用程序并立即重定向到登录页面,此引导脚本仍会添加到页面底部,并且所有数据都显示在集合中。
有没有办法在haml中检查用户的状态,或者是否有另一种方法我应该处理等待用户通过身份验证的引导?