我是 Rails 新手,我需要创建一个具有以下条件的简单 Rails 项目:
- 必须有一些文章的页面(标题+正文)
- 任何人都可以阅读这些文章
- 只有经过身份验证的用户才能创建/编辑/删除这些文章
我使用脚手架为文章生成控制器,并使用 gem Devise 创建身份验证系统。但我不知道如何实现必要的条件。
谢谢回复。
我是 Rails 新手,我需要创建一个具有以下条件的简单 Rails 项目:
我使用脚手架为文章生成控制器,并使用 gem Devise 创建身份验证系统。但我不知道如何实现必要的条件。
谢谢回复。
如果您的用户模型被调用user
,那么您将在控制器中包含以下内容:
before_filter :authenticate_user!
如果它没有调用user
,您可以用它的任何内容替换单词 user in authenticate_user
。
您可以直接在控制器声明下添加它,如下所示:
class ArticlesController < ApplicationController
before_filter :authenticate_user!
#rest of code
end
如果您只想将控制器中的某些操作限制为登录用户,您可以使用except
排除某些操作。在这里,任何人都可以看到 index 和 show:
before_filter :authenticate_user!, :except => [:index, :show]
或only
包括具体行动。在这里,只有经过身份验证的用户才能执行列出的操作:
before_filter :authenticate_user!,
:only => [:new, :edit, :create, :update, :delete]