Ruby on rails 在Ruby中,如何将控制器中的方法限制为特定用户?

Ruby on rails 在Ruby中,如何将控制器中的方法限制为特定用户?,ruby-on-rails,Ruby On Rails,在RubyonRails中,是否有标准方法将控制器中的某些方法限制为已登录的用户或具有特定权限的用户?为了简单起见,我有一个博客,我希望每个人都能访问我控制器中的“列表”和“显示”方法,但我只希望登录用户访问“编辑”、“更新”、“创建”和其他方法。我是否必须对逻辑进行编程,或者至少对每个函数进行函数调用以检查用户访问权限,或者是否有更正式的方法?您可以使用 这就是所谓的 例如 PostsController[:索引,:显示] 请查看,特别是查看,以获取您的问题的一些示例。这将有助于登录和身份验证

在RubyonRails中,是否有标准方法将控制器中的某些方法限制为已登录的用户或具有特定权限的用户?为了简单起见,我有一个博客,我希望每个人都能访问我控制器中的“列表”和“显示”方法,但我只希望登录用户访问“编辑”、“更新”、“创建”和其他方法。我是否必须对逻辑进行编程,或者至少对每个函数进行函数调用以检查用户访问权限,或者是否有更正式的方法?

您可以使用

这就是所谓的

例如

PostsController[:索引,:显示]
请查看,特别是查看,以获取您的问题的一些示例。这将有助于登录和身份验证。也请查收。这将有助于授权

使用Desive,您可以允许每个人访问“索引”(列表)和“显示”操作,并使用blog/post控制器顶部的以下行限制人们执行其他操作

 before_filter :authenticate_user! :except=>[:index, :show]

您应该在过滤器之前添加检查您需要的内容,并在未经授权的情况下重定向。这将迫使任何查看索引或显示的人成为管理员。我想你的意思是:除了而不是:只?不,我特别是指:只,因为作者要求只限制特定的控制器。同意我不允许:index和:show的例子没有什么意义,但是:)。
PostsController < ApplicationController
   before_filter :authenticate_admin!, :only => [:index, :show]
 before_filter :authenticate_user! :except=>[:index, :show]