Rails 构建 N 条记录的序列化对象

2024-03-11

我想序列化文本列中的任何对象。

通过 API,我得到参数:

params[:attachments] -- this can be 0 or 1 or 3, or 100+ etc...
params[:attachment1]...params[:attachment2] ... params[:attachmentN]

那么如何在序列化对象中存储 X # 个附件呢?

mailThing = MailThing.create(:attachments => myAttachmentsSerizliedIfANY )

我正在尝试做:

@myAttachmentsSerizliedIfANY = nil

i = 0
attachmentCount = params[:attachments].to_i
while i < attachmentCount do

   @myAttachmentsSerizliedIfANY << params[:attachment + i ]

   i += 1
end

关于如何让它发挥作用有什么建议吗?谢谢


好的,我看了你的其他一些问题,我想我可能有一些对你有用的东西。为此,您需要在数据库中有一列(我将其称为attachment_storage)您可以在序列化这些附件后将其存储在其中。

基本上,您希望首先将附件放入数组中,然后将其序列化为字符串,以便可以将其存储到数据库中。

这里有一些代码可以完成这个任务。

attachment_storage = []
(1..params[:attachments].to_i).each do |attachment_num|
   attachment_storage << params["attachment#{attachment_num}".to_sym]
end

在这里,我们使用字符串和 to_sym 构建 params 哈希的符号,将其转换为类似的符号:attachment1, :attachment2, etc.

然后您想要将其放入数据库中,以便您可以按照“在文本列中保存数组、哈希和其他不可映射对象”部分下的 [ActiveRecord 文档][1] 中所述存储它。

为了使序列化工作,您需要添加serialize :attachment_storage到您的模型,然后存储它,您可以像上面的任何其他参数一样分配它。然后保存您的模型,它将为您序列化。

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

Rails 构建 N 条记录的序列化对象 的相关文章

  • Ruby on Rails 中的三重连接

    我对 Ruby on Rails 中的关联有疑问 应用程序中有项目 用户 角色和组 项目属于一个有用户的组 一个用户可以属于多个不同的组 但只能在该组中拥有一个特定的角色 例如 在一个组中 用户是项目所有者 但在另一个组中 他是作家 使用
  • Googlebot 收到现有模板缺少模板错误

    在过去的几天里 当谷歌机器人尝试访问我们的主页 欢迎 索引 时 我们开始收到缺少模板的错误 我已经盯着这个看了几个小时 知道我只是错过了一些简单的东西 A ActionView MissingTemplate occurred in wel
  • 如何覆盖 Ruby Ranges 的 .. 和 ... 运算符以接受 Float::INFINITY?

    我想覆盖 and Ruby 中的运算符Range 原因是 我正在处理数据库中的无限日期范围 如果你拉一个infinty从 Postgres 中取出日期时间 你会得到一个Float INFINITY在红宝石中 问题是 我无法使用Float I
  • 在 Rails 6 上定义 Secret_key_base 的正确方法是什么?

    正确的定义方式是什么secret key base既然我们已经有了每个环境的凭据 就可以在 Rails 6 上使用了吗 我的环境有变量SECRET KEY BASE但 Rails 并没有接受它 我尝试定义secret key base in
  • Ruby 未绑定方法:是否可以强制绑定到其他类的实例?

    我想知道我是否可以强迫这种情况发生 class A def bomb bomb end end class B end bomb A instance method bomb b B new bomb bind b 目前它抛出错误 Type
  • 获取块参数个数

    我需要获取给定块所采用的参数数量 例如 foobar 1 2 3 a b c def foobar x y z block need to obtain number of arguments in block which would be
  • Ruby on Rails - 设计注册链接不起作用 - 未定义方法“user_registration_path”

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

    我有以下代码将字符串拆分为 3 个字节的组 str hello ix 0 iy 0 bytes tby str each byte do c if iy 3 iy 0 bytes ix tby each index do i bytes i
  • 如何在 Rails 3.2.1 版本中注释 Rails 模型

    我正在尝试遵循一些在线教程来在 Rails 中注释我的模型 然而 似乎所有教程都在谈论过时的注释版本或不正确的安装 这真是一团糟 到目前为止我已经尝试过以下方法 1 在 Gemfile 中添加此内容 gem annotate 2 4 0 2
  • Rails 3 Link_to:远程未触发 RJS

    我正在使用以下代码在 Rails 3 中设置 AJAX 操作 代码的 AJAX 部分似乎可以工作 但它没有请求正确的文件 而我的 respond to 为它提供常规 HTML 路由信息 resources zones do resource
  • 红宝石边缘情况

    ruby 有一些边缘情况很难解释 因为解析会带来一些有趣的问题 我在这里列出其中两个 如果您知道更多 请添加到列表中 def foo 5 end this one works if tmp foo puts tmp to s end How
  • 从 url 导入 CSV Errno::ENAMETOOLONG: 文件名太长

    我正在尝试从 url 导入 CSV 文件 但我得到了Errno ENAMETOOLONG file name too long 我按如下方式处理该文件 require open uri url http de65 grepolis com
  • 转储 YAML 时如何强制使用双引号?

    我有一个小脚本来自动化 YAML 文件中的一些操作 我读取原始 YAML 文件并将其转换为哈希 然后dump http ruby doc org stdlib 1 8 6 libdoc yaml rdoc YAML html method
  • 有没有人有 Ruby 和 Rake 的 Notepad++ 函数列表插件的解析规则

    我使用 Notepad 编辑 rake 文件 并且希望能够使用函数列表插件 我无法在线找到任何解析规则 并且 语言解析规则 对话框没有非常清晰的记录 我正在将方法解析到以下列表中 但还想显示任务 Function Begin t def t
  • 使用 Fetch 和 FormData API 上传多个文件

    我正在尝试使用本机Fetch https developer mozilla org en US docs Web API Fetch API and FormData https developer mozilla org en US d
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • 在rails中,如何将记录作为csv文件返回

    我有一个名为 Entries 的简单数据库表 class CreateEntries lt ActiveRecord Migration def self up create table entries do t t string firs
  • 在 Rails 3 中选择性地关闭 Devise 的 Flash 通知

    Devise 身份验证框架在各处都使用 Flash 通知 这使得与应用程序集成变得很容易 但有时会导致用户体验不佳 我想知道有什么简单的方法可以有选择地关闭 Rails 3 应用程序中的一些 Devise flash 通知 特别是 我想摆脱
  • 将 Rails 变量传递给液体可以在控制台中工作,但不在视图中

    我想将哈希传递给渲染方法 当我这样做时 在我的控制台中一切正常 object Object find params id hash object object to liquid template Liquid Template parse
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个

随机推荐

  • C# 字符串大于或等于代码字符串

    我试图让我的代码能够比较字符串是否大于或小于 10 但它无法正常工作 即使该值小于 10 它也会写入 10 或更多 int result string1 CompareTo 10 if result lt 0 Console WriteLi
  • 设置 UILocalNotification 的超时时间(一段时间后将其从锁屏和通知中心删除)

    我想设置一个UILocalNotification五分钟后 它将从锁定屏幕和通知中心消失 如果用户不点击它 我可以设置通知超时吗 或者也许会触发另一个通知来删除它 我相信 Facebook 是通过发送无声推送通知 http www g8pr
  • 正则表达式和冒号 (:)

    我有以下代码 这个想法是检测整个单词 bool contains Regex IsMatch Hello1 Hello2 bHello b yields false bool contains Regex IsMatch Hello Hel
  • 如何对 ObservableCollection 进行排序? [复制]

    这个问题在这里已经有答案了 我试过了 Persons from i in Persons orderby i Age select i 但我无法转换 LinqsSystem Linq IOrderedEnumerable to Observ
  • 减少玻璃鱼原木的线宽

    有谁知道如何减少玻璃鱼原木上每条线的宽度 它似乎包含很多我不需要的信息 下面是一行的示例 2012 03 04T16 00 09 537 0000 INFO oracle glassfish3 1 javax enterprise syst
  • Google 跟踪代码管理器不跟踪图像和图标上的链接点击

    在 Google 跟踪代码管理器中 我将其设置为跟踪包含特定类的元素的点击数据 并在 Google Analytics 中记录事件 它似乎适用于文本链接 但如果链接内有另一个用于图像 图标等的标签 我就会遇到问题 例如 以下内容可以正常工作
  • 前端计算价格不安全?

    我想知道是否可以操纵在前端完成的价格计算 我读了很多关于 JavaScript 价格计算器的文章 其中的业务逻辑仅在客户端 但对安全性却一无所知 考虑以下场景 React 应用程序有一个组件 表单 它根据其子组件 表单输入 的状态 用户交互
  • 请求映射中的双星号

    请求映射中出现双星号意味着什么 例如 RequestMapping value welcome method RequestMethod GET public ModelAndView welcomePage 一般来说 星号 通配符角色 意
  • DIO 响应解码问题

    我在用Dio为了使HTTP request var dio Dio var response await dio get URL final responseBody json decode response data final stat
  • 如何使用 Android 中的加速度计值计算特定轴的旋转速率

    我正在开发一个简单的游戏 其中角色仅沿 Y 轴上下移动 目前我正在使用加速度计读数来更改角色的 Y 速度 游戏运行良好 但最大的问题是你必须保持设备水平才能正常玩游戏 我真正想要的是仅当沿 Y 轴的旋转速率发生变化时才更改角色的 Y 速度
  • Azure SQL 频繁连接超时

    我们在 Azure 上运行一个 Web 应用程序 2 个实例 由 SQL Azure 数据库支持 在任何给定时间都有 50 150 个用户使用该网站 数据库以 S2 性能级别运行 DTU 平均约为 20 然而 每天都有几次我的日志中突然出现
  • 缓存从 pcap 捕获的数据包

    这是对此的后续问题 重建数据包以通过 pcap 注入 https stackoverflow com questions 8193281 rebuilding a packet to inject via pcap 我想要实现的目标 fun
  • 使用 LINQ 进行高效图遍历 - 消除递归

    今天我打算实现一种方法来遍历任意深度的图并将其展平为单个可枚举 相反 我先做了一些搜索 发现了这个 public static IEnumerable
  • 为什么使用 `<<-` 会让人皱眉,我该如何避免它?

    我关注了讨论HERE https stackoverflow com questions 9730651 how to avoid by using assign我很好奇为什么使用 lt lt 在R中皱起眉头 这会引起什么样的混乱呢 我还想
  • 使用 Powershell 编辑子文件夹中的 zip 文件内容

    我正在尝试更新从 Excel 文档创建的 zip 文件的内容 我想替换 zipfile xl connections xml 的一些内容 该部分脚本将列出 zip 文件的内容 shell app new object com shell a
  • Concepts(C++20) 可以用作布尔值吗?

    using T decltype std same as
  • 更改 MIFARE Classic 中扇区的身份验证密钥

    根据埃文的回答这一页 https forums tessel io t change auth code 1091 为了更改扇区的身份验证密钥 我们需要覆盖该扇区的第四个块 最后一个块 中的密钥 默认密钥始终为 FF FF FF FF FF
  • sqlite内存模式支持持久化到本地吗?

    什么是内存数据库 sqlite是内存数据库吗 该模式下是否支持将数据持久化到本地文件 内存数据库支持所有操作和数据库访问语法 但实际上并不持久 它只是内存中的数据结构 这使得它速度很快 非常适合开发人员实验和 相对少量的 临时数据 但不适合
  • 在 Google Play 商店上访问我的应用程序的统计信息 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我知道有一个 Android 开发者控制台 我可以检查有关我的应用程序的所有统计信息 我现在看到的那些统计信息 都是关于我的应用程
  • Rails 构建 N 条记录的序列化对象

    我想序列化文本列中的任何对象 通过 API 我得到参数 params attachments this can be 0 or 1 or 3 or 100 etc params attachment1 params attachment2