1

我是 Rails 新手,我需要创建一个具有以下条件的简单 Rails 项目:

  • 必须有一些文章的页面(标题+正文)
  • 任何人都可以阅读这些文章
  • 只有经过身份验证的用户才能创建/编辑/删除这些文章

我使用脚手架为文章生成控制器,并使用 gem Devise 创建身份验证系统。但我不知道如何实现必要的条件。

谢谢回复。

4

1 回答 1

5

如果您的用户模型被调用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]
于 2013-05-04T19:43:46.577 回答