我是Rails的新手,我需要创建一个具有以下条件的简单Rails项目:
我使用scaffold为文章生成控制器,并使用gem Devise创建身份验证系统。但我不知道如何实施必要的条件。
感谢您的回复。
答案 0 :(得分:5)
如果您的用户模型被称为user
,那么您将在控制器中包含以下内容:
before_filter :authenticate_user!
如果未调用user
,则会将authenticate_user
中的单词替换为任何内容。
您可以直接在控制器声明下添加它,如下所示:
class ArticlesController < ApplicationController
before_filter :authenticate_user!
#rest of code
end
如果您只想将控制器中的某些操作限制为已登录用户,则可以使用except
排除某些操作。在这里,任何人都可以看到索引和节目:
before_filter :authenticate_user!, :except => [:index, :show]
或only
包含具体操作。此处,只有经过身份验证的用户才能执行列出的操作:
before_filter :authenticate_user!,
:only => [:new, :edit, :create, :update, :delete]