rails-activerecord相关内容

获取“表的未知主键"当身份证在那里时

我一直在调试 Rails 的这个奇怪问题,它给我“表的主键未知...",即使表的 ID 存在也是如此. 我已将数据库从一个 heroku 应用程序复制到另一个应用程序,在原始数据库上没有问题,而新数据库给了我一个 db 错误. 这是错误: ProductsController# (ActionView::Template::Error) “模型集合中表集合的主键未知."/app/ve ..

ActiveRecord 查找并只返回选定的列

编辑 2 如果您偶然发现了这一点,请检查这两个答案,因为我现在会为此使用 pluck 我有一个相当大的自定义数据集,我想返回它以作为 json 回显.其中一部分是: l=Location.find(row.id)tmp[row.id]=l 但我想做类似的事情: l=Location.find(row.id).select(“名称、网站、城市")tmp[row.id]=l 但这似 ..
发布时间:2021-12-12 11:37:45 其他开发

ActiveRecord/Rails 中的原子插入或增量

在 Rails 中为带有计数器的模型实现原子插入/更新的最佳方法是什么?我试图解决的问题的一个很好的类比是具有两个字段的“喜欢"计数器: url : 字符串计数:整数 插入时,如果当前没有匹配 url 的记录,则应创建一个计数为 1 的新记录;否则现有记录的 count 字段应该增加. 最初我尝试了如下代码: Like.find_or_create_by_url("http://exa ..
发布时间:2021-12-12 11:31:08 其他开发

ActiveRecord 包括.指定包含的列

我有模型简介.个人资料 has_one 用户.用户模型具有字段电子邮件.当我打电话 Profile.some_scope.includes(:user) 它调用 SELECT users.* FROM users WHERE users.id IN(一些id) 但是我的用户模型有很多我没有在渲染中使用的字段.是否可以只加载来自用户的电子邮件?所以,SQL 应该看起来像 SELECT us ..
发布时间:2021-12-12 11:12:14 其他开发

Rails:验证两列的唯一性(一起)

我有一个带有 medium 和 country 列(以及其他)的 Release 模型.不应有共享相同的 medium/country 组合的 releases. 我将如何将其编写为 Rails 验证? 解决方案 您可以使用 uniqueness 使用 scope 选项进行验证. 此外,您应该向数据库添加唯一索引,以防止新记录在写入前同时检查时通过验证: class AddU ..

SQL wherejoined set 必须包含所有值,但可以包含更多

我有三个表offers、sports和连接表offers_sports. class Offer 我想选择包括一系列给定的运动名称的优惠.它们必须包含所有sports,但可能有更多. 假设我有这三个优惠: 灯:- “瑜伽"- “趴板"中等的:- “瑜伽"- “趴板"- 《冲浪》全部:- “瑜伽"- “趴板"- 《冲浪》- 《滑翔伞》——《跳伞》 给定数组 ["Bodyboardin ..

ActiveRecord 中的浮点数与十进制数

有时,Activerecord 数据类型让我感到困惑.呃,经常.我永恒的问题之一是,对于给定的案例, 我应该使用 :decimal 还是 :float? 我经常看到这个链接,ActiveRecord: :decimal vs :float?,但答案还不够清楚,我无法确定: 我见过很多人建议完全不要使用的线程浮动并始终使用十进制.我也看到了一些人的建议人们只将浮动用于科学应用. ..

ActiveRecord 在日期字段中按年、日或月查找

我有一个具有日期属性的 ActiveRecord 模型.是否可以利用该日期属性按年、日和月查找: Model.find_by_year(2012)Model.find_by_month(12)Model.find_by_day(1) 或者可以简单地找到_by_date(2012-12-1). 我希望我可以避免创建年、月和日属性. 解决方案 假设您的“日期属性"是一个日期(而不是完 ..

按指定顺序按 id 查找 ActiveRecord 对象的清洁方法

我想获取一个给定 id 数组的 ActiveRecord 对象数组. 我认为 Object.find([5,2,3]) 将返回一个包含对象 5、对象 2 和对象 3 的数组,但我得到的数组顺序为对象 2、对象 3 和对象 5. ActiveRecord Base 查找方法 API 提到您不应该按照提供的顺序期待它(其他文档没有给出这个警告). 在 按相同的 id 数组查找中给 ..
发布时间:2021-12-02 12:33:18 数据库

Rails 5:ActiveRecord OR 查询

您如何在 Rails 5 ActiveRecord 中执行 or 查询?另外,是否可以在 ActiveRecord 查询中将 or 与 where 链接起来? 解决方案 将 or 子句与 ActiveRecord 中的 where 子句链接起来的能力查询将在 Rails 5 中可用.请参阅相关讨论和拉取请求. 因此,您将能够在 Rails 5 中执行以下操作: 要获得 id 1 ..