使用 AuthLogic 保护内容

2024-01-01

我知道这听起来像是一个非常非常简单的用例,我希望确实如此,但我发誓我已经查遍了所有地方,但没有发现任何提及的方法 - 甚至不是最好的方法 -做这个。

我对 Ruby、Rails 以及与之相关的一切都是全新的(这可以解释为什么lot)。我用作学习工具的虚拟应用程序需要身份验证才能执行几乎任何有意义的操作,因此我选择从解决该问题开始。我已经安装了 AuthLogic gem 并让它在介绍文档和 Railscast 所涵盖的范围内运行良好,但现在我可以注册、登录和注销......我需要用它做一些事情。

例如,我需要创建一个用户可以上传图像的页面。我打算有一个ImagesControllerupload操作方法,但我希望只有登录用户才能访问。我想在每个受限操作中,如果没有,我可以添加代码来重定向current_user,但这看起来确实很冗长。

有没有更好的方法可以让我定义或识别限制区域并在一个地方处理身份验证检查?


确保您的 application_controller.rb 中有这些方法

def current_user_session
  return @current_user_session if defined?(@current_user_session)
  @current_user_session = UserSession.find
end

def current_user
  return @current_user if defined?(@current_user)
  @current_user = current_user_session && current_user_session.record
end

def require_user
  unless current_user
    store_location
    flash[:notice] = "You must be logged in to access this page"
    redirect_to new_user_session_url
    return false
  end
end

然后在您的控制器中,您可以使用 before 过滤器来限制对页面的访问

class ExamplesController < ActionController::Base
  before_filter :require_user, :only => :private

  def public
    // some public stuff
  end

  def private
    // some protected stuff
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 AuthLogic 保护内容 的相关文章

  • Ruby on Rails - 设计注册链接不起作用 - 未定义方法“user_registration_path”

    这个问题之前已经报告过 但我仍然无法找到解决方案 我已将插件 Devise 安装到我的新 RoR 项目中 当我点击注册链接时 我被重定向到以下路线 http localhost 3000 users registration sign up
  • Rails 中的 PDF 导出

    我需要将包含一些图表的 HTML 页面导出为 PDF 有哪些好的 gem 可以做到这一点 PDFKit http railscasts com episodes 220 pdfkit http railscasts com episodes
  • 如何在 Rails 3.2.1 版本中注释 Rails 模型

    我正在尝试遵循一些在线教程来在 Rails 中注释我的模型 然而 似乎所有教程都在谈论过时的注释版本或不正确的安装 这真是一团糟 到目前为止我已经尝试过以下方法 1 在 Gemfile 中添加此内容 gem annotate 2 4 0 2
  • 当一组工作人员完成时如何执行 Sidekiq 回调

    假设我有一个 Sidekiq 任务将产品处理到我的数据库 每个产品都按商店分组 因此我的代码的一个过于简化的示例将是这样的 stores each do store store products each do product Produc
  • 多态控制器和调用对象

    我的地址具有多态关系 可以由成员或依赖者拥有 一切看起来都很棒 直到我意识到除非我遗漏了一些东西 否则我不知道创建它的对象是什么类型 有没有办法告诉路由文件包含对象的类型 Models class Member lt ActiveRecor
  • 从 Ruby 中的 DateTime 变量获取时间

    我在 ruby 中工作 我有一个包含数据库中今天的日期时间的对象 我只想要时间截断数据 我怎样才能得到那个 Try 日期时间 strftime http www ruby doc org stdlib 1 9 3 libdoc date r
  • 在rails中,如何将记录作为csv文件返回

    我有一个名为 Entries 的简单数据库表 class CreateEntries lt ActiveRecord Migration def self up create table entries do t t string firs
  • 创建一个简单的 Rails 3 文本助手 Gem [重复]

    这个问题在这里已经有答案了 我一直在开发我的第一个 Rails 3 插件 以打包一个我喜欢在ApplicationHelper我所有的应用程序 你可以看到整个代码在 Github 上 https github com burlesona s
  • 目前最流行的 Ruby on Rails AUTHORIZATION gem/plugin 是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • 多重要求和允许强参数rails 4

    在下面的情况下 我尝试使用强参数 我想要求email address password并允许remember me fields 但像下面这样使用它只允许最后一行在方法示例中 在下面的情况下 它只需要params permit rememb
  • 我在 Rails 中使用了保留字吗?

    这是我的模型 class Record lt ActiveRecord Base belongs to user belongs to directory end class Directory lt ActiveRecord Base h
  • 使用 Ruby aws-sdk 跟踪文件到 S3 的上传进度

    首先 我知道SO中有很多与此类似的问题 在过去的一周里 我读了大部分 如果不是全部 但我仍然无法让这项工作为我工作 我正在开发一个 Ruby on Rails 应用程序 允许用户将 mp3 文件上传到 Amazon S3 上传本身工作正常
  • rvm gem 安装错误?

    我正在摆弄 ruby gems 和 rvm 它工作得很好 但现在当我尝试安装 gem 时出现错误 gem install Rails错误 同时 执行 gem Errno EACCES 权限被拒绝 Users da rvm gems ruby
  • Rails 4 使用 ajax、jquery、:remote => true 和 respond_to 渲染部分

    使用 AJAX 动态渲染页面以响应提交的表单似乎很常见 其他类似的问题都没有集中于如何以一般方式做到这一点 我能找到的关于这个主题的最好的博客文章在这里 http www gotealeaf com blog the detailed gu
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 服务器上的 Rails 会话

    我想让一些 Rails 应用程序在不同的服务器上共享同一个会话 我可以在同一服务器内完成此操作 但不知道是否可以在不同服务器上共享 有人已经做过或者知道怎么做吗 Thanks Use the 数据库会话存储 https github com
  • Rails 资源单数还是复数?

    我有一条搜索路线 我想将其设为单数 但是当我指定单数路线时 它仍然会生成复数控制器路线 这是应该的样子吗 resource search Gives me search POST search format action gt create
  • 让 Rails 生产在端口 80 上运行

    我正在尝试让我的 Rails 应用程序在生产模式下运行 但遇到了一些困难 我正在使用 Passenger 和 apache 并运行 Ubuntu 12 04 我已经配置和创建了生产数据库 并设置了乘客 状态如下 rvmsudo passen

随机推荐

  • c# xml序列化不写null

    当我序列化一个包含可为 null DateTime 的 C 对象时 有没有办法将 null 值保留在 xml 文件之外 而不是让
  • SFINAE:static_assert 与 std::enable_if

    是否存在以下缺点 建议 句法 template lt typename T gt void f static assert std is same lt T int gt value 而不是 SFINAE 看起来像拐杖 template l
  • 使用“随机”键反序列化 JSON

    我正在尝试反序列化此 Json 代码 hotkeyOptions autoSwitchHotkeyPreset true currentHotkeySetName Paladin hotkeySets Newbie F10 useObjec
  • 添加引号到 CSV 导出

    我正在使用以下命令将数据导出到 CSV 文件fputcsv 我有正在写入的字符串 但是我要求数据用双引号引起来 foreach orderDetails lines as line fputcsv orderImportCsv line 在
  • 如何使用 html5 音频标签在 Android 上使用 PhoneGap 播放本地 mp3?

    我正在使用phonegap 上的Android SDK v19 在Android 4 4 上进行部署 我在与我的 index html 文件相同的文件夹中有一个 mp3 文件 我想使用 html5 音频标签来播放它
  • 如何在 ASP.NET Core 的 Razor Pages 中设置全局变量?

    我想检查浏览器是否是 IE 并在 razor 页面中执行某些操作 我刚刚在剃刀页面中创建了一个函数来做到这一点 不过 我认为在每个razor页面中使用检查浏览器是否为IE的功能是多余的 对于独立用户 我只需要检查一次并设置一个全局变量IsI
  • 如何在 C# 命令中使用 LIKE 运算符?

    我需要将字符串插入 Sql 命令 search CommandText SELECT FROM Contacts WHERE Name like person 正确的使用方法是什么LIKE在命令中 应该 SELECT FROM Contac
  • 实例化新 Android Fragment 的最佳实践

    我见过在应用程序中实例化新片段的两种一般做法 Fragment newFragment new MyFragment and Fragment newFragment MyFragment newInstance 第二个选项使用静态方法ne
  • sizeof- 函数还是宏? [复制]

    这个问题在这里已经有答案了 在c中 我们使用sizeof 用于获取数据类型的大小 所以 它是如何定义的 它是一个宏或一个函数 因为我们可以用两种方式来使用它 sizeof int and sizeof int 那么这是如何在头文件中定义的
  • 将非 ASCII 字符分配给宽字符并使用 printf 打印

    如何将非 ASCII 字符分配给宽字符并将其打印到控制台 这段代码不起作用 include
  • SelectKBest (chi2) 如何计算分数?

    我试图通过将特征选择方法应用于我的数据集来找到最有价值的特征 我现在使用 SelectKBest 函数 我可以生成分值并根据需要对它们进行排序 但我不明白这个分值是如何计算的 我知道理论上的高分更有价值 但我需要一个数学公式或一个例子来计算
  • JMeter 使用 jmx 文件的相对路径上传文件

    我正在 JMeter 中创建一个 HTTP 请求采样器 以自动将文件上传到 http 服务 有没有办法将 通过请求发送文件 中的 文件路径 设置为jmx文件位置的相对路径 是的 这在 JMeter v2 9 中得到了证实 您可以在文件名输入
  • 如何在 SQL Server 2005 Express 中启用全文索引?

    我正在尝试在 SQL Server 2005 Express 中启用全文索引 我在装有 Vista Ultimate 的笔记本电脑上运行此程序 据我所知 标准版本的 SQL Server Express 没有全文索引 我已经下载并安装了 M
  • 从 Rails-geocoder gem 中的控制器获取纬度和经度值

    使用时是否可以在控制器中获取纬度和经度值geocoder https github com alexreisner geocoder宝石在轨道上 目前正在做的获取所有附近位置的操作是传递位置名称 如下所示 event address Eve
  • 在 python 中使用 pandas 检索数据列上的匹配字数

    我有一个df Name Description Ram Ram is one of the good cricketer Sri Sri is one of the member Kumar Kumar is a keeper 和一个清单
  • 提供用于 WhatsApp 链接共享的图像

    当我们分享这样的链接时 如何在我们的网站中添加图片以在 WhatsApp 中显示 2020年标准 只需几个步骤即可获得适用于 PC 和移动设备的 WhatsApp Twitter Facebook 和书签图标的完美预览 如果您喜欢阅读 请前
  • C - 如何实现Set数据结构?

    在 C 中是否有任何棘手的方法来实现集合数据结构 唯一值的集合 集合中的所有元素都属于相同类型 并且有巨大的 RAM 内存 据我所知 对于整数 使用值索引数组可以非常快速且轻松地完成 但我想要一个非常通用的 Set 数据类型 如果一个集合可
  • 在 Iframe 中更改页面的按钮或链接

    我希望在页面中创建一个链接或按钮来更改 iframe 所在的页面 这将是一个本地页面 idreesinc com iframe html 你可以看到我已经在这里 idreesinc com research 非常感谢您的帮助 因为我多年来一
  • 无法运行模拟器 操作无法完成。 (LaunchServicesError 错误 0。)

    我尝试在 Xcode 7 和 swift 2 0 中运行 IOS9 iphone 6 应用程序 但我不能 如果我重置内容和模拟器设置 第一次可以工作 但第二次又失败 我已经清理了应用程序 我已经清理了构建文件夹 我尝试将 NSAllowsA
  • 使用 AuthLogic 保护内容

    我知道这听起来像是一个非常非常简单的用例 我希望确实如此 但我发誓我已经查遍了所有地方 但没有发现任何提及的方法 甚至不是最好的方法 做这个 我对 Ruby Rails 以及与之相关的一切都是全新的 这可以解释为什么lot 我用作学习工具的