【问题标题】:Newbie with Rails devise and view of the user使用 Rails 的新手设计和查看用户
【发布时间】:2014-04-23 02:11:44
【问题描述】:

我正在以某种方式研究 RoR:使用 DEVISE 登录系统,(它正在工作),但我需要一些东西,而不是始终保持此登录用户的视图,并避免该用户查看其他视图。

http://xx.xx.xx.xx:3000/user/1

并且该用户无法查看以下内容:

http://xx.xx.xx.xx:3000/user/2

如果这是一个愚蠢的问题,请抱歉,但是,我看了 2 天,我不知道如何命名此功能。 谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby login devise views


    【解决方案1】:

    此授权有可用的宝石。我更喜欢 can can 它是可用的最佳授权宝石之一

    这是宝石=> https://github.com/ryanb/cancan

    这是使用它的rails cast教程=> http://railscasts.com/episodes/192-authorization-with-cancan

    编辑:如果你想手动实现,那么你只需要创建一个具有以下逻辑的方法

    def check_authorization
      # Assuming user ID is coming in params[:id]
       if current_user.id == params[:id]
          return
       else
          # render or redirect to some page with access denied message
       end
    end
    

    并在您要检查授权的任何操作之前调用此方法。

    【讨论】:

    • 很好的帮助。我看了使用的视频,看起来比设计的更简单、更干净。我对手动执行器有疑问,比你说的要多。这应该在ApplicationController中?或者你推荐的地方?非常感谢您的帮助!
    • 如果您打算在多个控制器中使用此方法,那么它应该驻留在应用程序控制器中,以便在所有控制器中都可以使用...否则,如果您仅在使用它单个控制器然后将其写入该控制器,但使其成为私有方法。
    • 谢谢!我是新来的,所以我还不能给你点帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多