我正在试图找出before_filters
,我希望得到一些帮助。
我有一个简单的博客应用程序,可以是(草稿或发布)和(公共或私人)条目。我想知道如何进行身份验证?
我目前有:
before_filter :authenticate, :except => [ :show ]
这样可以阻止所有CRUD操作。对于show
,我需要检查:
我可以在动作本身内完成,但似乎 rails 这样做的方式是before_filter
。
谢谢!
答案 0 :(得分:1)
在前过滤器中执行此操作。如果您正在使用devise,那么如果用户已登录,则current_user方法可用。否则,将current_user替换为authenticate方法返回的值。
def find_post
@post = Post.find(params[:id])
redirect_to root_path if @post.draft && @post.user != current_user
redirect_to root_path if @post.private && !current_user
end