是否可以使用载波建立动态存储路径?

2024-01-10

我从载波 https://github.com/jnicklas/carrierwave用于文件上传,到目前为止我对此非常满意。我的文件存储在亚马逊 s3 上,这相当简单并且工作可靠。

现在我有一个名为pictures和上传者姓名MainUploader。我需要一个特殊的动态路径来保存这些文件上传时的位置。

我也在使用设备并且我有current_user我可以从我的视图和控制器访问,但不能从载波上传器访问。我需要文件的路径类似于

uploads/#{current_user.location}/#{current_user.first_name}/images

但我无法从上传者访问 current_user 并且没有看到任何替代方案。这种类型的动态路径是否可以通过载波实现(无需重写大量此宝石)?

非常感谢任何指点。 感谢您的帮助。


以防万一其他人通过谷歌搜索或其他东西想知道这里。

我最终做的是在我的模型上创建一个belongs_to关系(pictures)到用户模型。然后从载波上传器我可以做model.user.first_name这相当于picture.user.first_name。因此,我可以将该 model.user 放在我的路径中,并以这种方式访问​​任何用户属性。希望这对其他人有帮助。

就像是:

def store_dir
    "#{model.user.first_name}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.title}"
end

附注 注意我也用过model.title那是因为我希望 picture.title 也位于路径中。但这不是最佳实践。如果您这样做,请确保在生产中解析 model.title,以便它为您提供有效的文件夹名称/url。

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

是否可以使用载波建立动态存储路径? 的相关文章

  • 通过 Assets Pipeline 携带 Sass 变量,Rails 3.1 rc1

    我最近将我的 Rails 3 0 项目之一与 3 1 rc1 进行了分支 以尝试新的资产管道 在使用 3 1 之前 我一直在项目中使用 Sass 因此我在单独的配置文件中设置了一些变量和函数 并让所有其他 sass 文件在第一行导入该文件
  • 设计如何覆盖 send_confirmation_instructions

    我正在尝试重写方法 send confirmation instructions 如下所示 http trackingrails com posts devise send confirmation mail manually or del
  • 在设计电子邮件主题中添加动态价值

    好吧 我看过很多关于自定义设计电子邮件主题的讨论 但似乎没有一个能解决我想要的问题 目前我的确认电子邮件主题为 确认您的 Qitch com 帐户 我想自定义此电子邮件主题并在其中添加用户名的动态值 这样如果用户ALEX注册一个帐户 他应该
  • Ruby - 乘法问题

    我的输出是这样的 ruby 1 9 2 p290 011 gt 2 32 3 gt 6 959999999999999 我记得有一天在另一台机器上我得到了它就像 2 32 3 6 我的错误是什么 非常感谢您阅读本文 如果您确实想向下舍入为整
  • 通过 has_many 进行多个数据库连接

    如何通过使用多个数据库连接来创建 has many 我有一个名为 master 的数据库 其中保存位置信息 这是从单独的应用程序更新的 用户可以访问许多位置 但所有其他模型都位于另一个名为 budget 的数据库中 以下是模型的设置方式 p
  • 获取设备中的当前用户ID

    如何使用设备获取控制器中的当前用户 ID 在我的控制器中我有这样的东西 def index me current user c User find me sheets c time sheets end 我收到一条错误消息 无法找到没有 I
  • 在 Rails 3 中选择性地关闭 Devise 的 Flash 通知

    Devise 身份验证框架在各处都使用 Flash 通知 这使得与应用程序集成变得很容易 但有时会导致用户体验不佳 我想知道有什么简单的方法可以有选择地关闭 Rails 3 应用程序中的一些 Devise flash 通知 特别是 我想摆脱
  • ruby从1.8.7升级到1.9.2(使用Rails 3.1.1)后本地服务器错误

    我刚刚安装了rvm并使用rvm将ruby从1 8 7升级到1 9 2 我在我的应用程序上运行了捆绑安装 它重新安装了我的 gems 当我在本地运行 Rails 服务器并将浏览器导航到 localhost 3000 时 服务器日志中显示以下错
  • 在rails中,如何在要求升级帐户之前限制用户在数据库中保存的帖子数量

    我添加了一种控制非订阅用户和订阅用户的小方法 基本上我的想法是所有使用 Devise 注册的用户都会获得一个帐户 但是 我的模型或根据找到的用户 ID 在数据库中存储的用户可以拥有的帖子数量应该是 25 个帖子 我猜下面的方法会起作用 Mo
  • Rails 3.2 子域和设计

    我有一个应用程序 用户可以登录到他们的公司子域 我用的是设计 此代码将用户从根域重定向到子域 def after sign in path for resource or scope scope Devise Mapping find sc
  • 更新系统后RubyGems错误

    使用 sudo gem update system 更新 ruby 设置后尝试启动 Rails 控制台时 我尝试通过发出以下命令来执行 Rails 控制台rails c 我收到此错误 Users myusername rvm rubies
  • 从表单中选择枚举以设置角色

    Ruby on Rails 4 1 我正在将 Devise 与枚举角色一起使用 目前 它在创建用户时使用默认角色 我想在创建用户的表单中添加一个字段来设置枚举角色 I read this https github com RailsApps
  • 没有路线匹配 [GET]“user/sign_out”rails 5

    我目前使用 Devise 遇到此错误 并且我已经尝试了其他问题中的多种方法 以便以零运气解决它 首先建议我确保将该方法添加为删除 No luck 然后我被建议我需要在我的布局标题中包含以下内容 or this 还是 运气不好 最后 建议我更
  • Ruby on Rails / Devise - 重置密码时绕过模型中的自定义验证选项

    在我的项目中 我更改了 Devise 中的注册表单 以通过访问器添加 agree 选项 用户必须接受服务条款才能注册等 如果他们不同意 则无效 当用户尝试编辑其帐户信息以寻求 agree 验证时 这导致了问题 但我能够添加一个 unless
  • 从 S3 下载 Carrierwave 上传内容

    我想下载使用 Carrierwave 上传到 S3 的图像 该图像位于卡片模型上 作为上传器安装 我看见这个答案 https stackoverflow com questions 7193516 how to send file to u
  • 部署到 Heroku 时出现“rake 中止!堆栈级别太深”

    我的网站曾经运行正常 Heroku 预编译了资产和所有内容 现在 似乎不知从何而来 我开始在部署时收到此消息 Preparing app for Rails asset pipeline Running rake assets precom
  • 设计对多个并发会话的支持

    我使用 Rails 3 2 11 和 Devise 2 2 3 作为订阅服务应用程序 我从另一位不再可用的开发人员那里继承了该应用程序 我是 Rails 和 Devise 的新手 我想要允许单个用户 电子邮件 拥有多个会话到同一个应用程序
  • 耙子错误:警告:已初始化常量 MAJOR [重复]

    这个问题在这里已经有答案了 可能的重复 运行命令 rake 时出现问题 https stackoverflow com questions 7319262 problem to run comand rake yulong ubuntu d
  • 如何使用类自定义设计错误消息

    我正在使用 Twitter 引导警报消息 在我的 application html erb 中我有 div class a class close a div 通常当我想做一条闪存消息时 我会写类似的内容 flash success Pro
  • Rails:关于产量

    我在a中看到了一些代码导轨 v2 3 app In layout car general html erb 这个视图是由 cars controller 中的方法调用的 我看到了代码 var some car new Object 有两个问

随机推荐

  • Material UI 的 Snackbar 不向下滑动

    我在用Material UI第一次并尝试实施SnackbarAPI 发布成功 我希望 Snackbar 在 Enter 时向上滑动 然后在 Exit 时向下滑动 我能够实现在 Enter 时向上滑动 但需要 在退出时向下滑动 的帮助 谁能帮
  • 安装和使用 PIL-Python 成像库的过程是什么?

    我尝试使用 pip 安装 PIL 它给了我这个错误 C Users AppData Local pip gt pip 安装http effbot org downloads Imaging 1 1 6 tar gz http effbot
  • 为什么当我指定 -ErrorAction SilentlyContinue 时仍然显示错误?

    PS C Users ad ctjares gt Stop Transcript ErrorAction silentlycontinue Transcription has not been started Use the start t
  • Docker 化您的 Angular NodeJS 应用程序

    我们有一个前端应用程序 它是用 Angular html css javascript 编写的 需要由网络服务器 nginx 托管 Angular 正在与 NodeJs 服务器通信 该服务器将与后端通信 现在我们必须在 Docker 中运行
  • 如何将运送区域名称添加到 WooCommerce 管理订单列表中的新列

    我想在 WooCommerce 的订单概览中显示送货区域名称 这显示了订单概览 这显示了我要显示的运送区域名称 我读过 我可以使用自己的插件来完成此操作 尝试过但失败了 或者在我的函数中使用过滤器 我找到了这个过滤器 可以将日期添加到同一订
  • Windows Phone7:单击按钮打开网页?

    我刚刚搜索 但没有找到在我的 Windows Phone7 应用程序中创建 Web 链接的方法 在Android中TextView有android autoLink Web 在 Windows Phone7 文本块中我没有找到任何相关属性
  • Linux 用户空间 ELF 加载器

    我需要做一件相当不寻常的事情 手动执行 elf 可执行文件 IE 将所有部分加载到正确的位置 查询 main 并调用它 然后进行清理 可执行文件将被静态链接 因此不需要链接库 我还控制基地址 所以不用担心可能的冲突 那么 有没有相关的库呢
  • 安装 Bison 后出现“make: yacc: Command not found”

    在 gcc 4 1 2 linux 5 中运行 makefile 时 出现以下错误 make yacc Command not found 通过谷歌搜索 我了解到可以通过安装 Bison GNU 解析器生成器来纠正此错误 但即使安装了 Bi
  • 文本框的值消失 - 将视图模型绑定到选项卡(内容控件)

    基于MVVM 示例 http msdn microsoft com en us magazine dd419663 aspx作者 Josh Smith 我实现了多选项卡选项 该选项将不同的选项卡绑定到不同的视图模型 使用将视图模型绑定到视图
  • 如何将终端作为侧栏旁边的列移动?

    今天 4 02 22 之后 VSCode 在更新 1 64 0 中引入了 侧面板 它应该提供更多的灵活性等 但就我而言 它实际上破坏了我的布局并采用了我正在使用的选项 我有我的布局 代码 终端 侧边栏 每个都在一列中 现在我无法将终端移动到
  • 如何在SQL Server中删除触发器?

    我需要删除 SQL Server 中的触发器 看起来应该很简单 但是因为有一种称为 删除触发器 的东西 即在删除时调用的触发器 所以似乎不可能找到有关如何实际删除已存在的触发器的资源 跌落触发器 http msdn microsoft co
  • 在SQL中计算给定月份的第一个工作日

    我必须计算每月前 N 天内已支付的所有发票 我有两张桌子 INVOICE 有发票信息 唯一重要的字段称为 datePayment HOLYDAYS 这是一个单列表 该表中的条目的格式为 2009 01 01 2009 05 01 等 我还应
  • php exec() 在 unicode 模式下?

    我需要执行接受 ut8 作为输入或生成 ut8 输出的命令行命令和工具 所以我使用 cmd 它可以工作 但是当我用 exec 从 php 尝试这个时 它不起作用 为了简单起见 我尝试了简单的输出重定向 当我直接在命令提示符下写入时 chcp
  • 检查默认java安装版本是否大于1.x的DOS脚本

    正如主题所说 我需要一个dos脚本来检查windows xp机器上安装的java版本 此外 我需要检查版本是否大于前缀值 1 x 有人可以帮助我吗 Thanks 获取版本 并将其写入临时文件 然后只解析版本本身 echo off echo
  • 重播 vim 宏直到缓冲区结束

    我想运行一个我刚刚在寄存器中录制的宏 x 在 vi m 中打开缓冲区的每一行上 从光标到缓冲区末尾 我该怎么做 我知道我可以重放宏 n 次 15 x 或者按住 直到我到达最后一行 但我只想敲击几个键就可以完成它 就我个人而言 我会做 VG
  • Javascript:for循环属性内的条件递增或递减

    我知道我可以执行 IF ELSE 但我需要知道是否可以设置条件循环 如下所示 for i 0 i
  • 辅助线程的堆栈大小,DEBUG和RELEASE版本差异显着

    在我的 iPhone 应用程序 XCode 3 2 4 iOS3 1 3 中 如果我在 RELEASE 模式下运行应用程序 一切都很好 但在 DEBUG 模式下 应用程序会崩溃并出现 EXC BAD ACCESS 异常 该应用程序会执行一些
  • 检查文件是否包含或加载

    是否有任何优雅的方法来检查文件是否包含在使用中include include once require require once或者页面实际上是直接加载的吗 我正在尝试在创建类文件时在类文件内设置一个测试文件 我正在寻找类似于Python的
  • 使用 Prismatic Sc​​hema 验证多个多态值

    不久前我问过简单的多态模式 https stackoverflow com q 23917495 24874 并且那里的答案一度效果很好 现在我希望验证的地图有一个附加值 该值取决于另一个键的值 该对象的一个 人为示例 type foo t
  • 是否可以使用载波建立动态存储路径?

    我从载波 https github com jnicklas carrierwave用于文件上传 到目前为止我对此非常满意 我的文件存储在亚马逊 s3 上 这相当简单并且工作可靠 现在我有一个名为pictures和上传者姓名MainUplo