问题标签 [rails-activerecord]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 有没有办法将命名范围组合成一个新的命名范围?
我有
我想要
但我更喜欢以干燥的方式来做。我可以通过使用获得相同的效果
但它不是特别可爱。
ruby-on-rails - 复制 activerecord 记录的最简单方法是什么?
我想复制一个 ActiveRecord 对象,更改过程中的单个字段(除了id)。完成此任务的最简单方法是什么?
我意识到我可以创建一个新记录,然后遍历每个字段,逐个字段地复制数据 - 但我认为必须有一种更简单的方法来做到这一点。
也许是这样的:
ruby-on-rails - Rails:如何在 ActiveRecord 中设置默认值?
如何在 ActiveRecord 中设置默认值?
我看到 Pratik 的一篇文章描述了一段丑陋、复杂的代码: http: //m.onkey.org/2007/7/24/how-to-set-default-values-in-your-model
我已经看到以下示例在谷歌搜索:
和
我也看到人们把它放在他们的迁移中,但我宁愿看到它在模型代码中定义。
是否有规范的方法来为 ActiveRecord 模型中的字段设置默认值?
ruby-on-rails - 你如何编写一个迁移来重命名一个 ActiveRecord 模型及其在 Rails 中的表?
我不擅长命名,并意识到在我的 Rails 应用程序中有一组更好的模型名称。
有没有办法使用迁移来重命名模型及其对应的表?
ruby-on-rails - Ruby Object#id 警告和 Active Record
当我们运行我们的规范时,我们不断看到如下警告:
Object#id 将被弃用;使用对象#object_id
有问题的代码正在访问 ActiveRecord 模型的 id(显然,这是表上的一个属性,而不是 Ruby VM 中的对象实例 ID)。
有谁知道如何关闭这些特定警告或以某种方式避免它们?
ruby-on-rails - 如何避免运行 ActiveRecord 回调?
我有一些具有 after_save 回调的模型。通常这很好,但在某些情况下,例如在创建开发数据时,我想保存模型而不运行回调。有没有一种简单的方法可以做到这一点?类似于...的东西
或者
我查看了 Rails 文档并没有找到任何东西。然而,根据我的经验,Rails 文档并不总是能说出整个故事。
更新
我发现一篇博客文章解释了如何从这样的模型中删除回调:
我找不到该方法的记录位置,但它似乎有效。
mysql - 回滚失败的 Rails 迁移
如何回滚失败的 Rails 迁移?我希望这rake db:rollback
会撤消失败的迁移,但是不,它会回滚先前的迁移(失败的迁移减去一)。而且rake db:migrate:down VERSION=myfailedmigration
也不行。我遇到过几次,这非常令人沮丧。这是我为复制问题所做的一个简单测试:
结果:
好的,让我们回滚:
嗯?那是我在 SimpleTest 之前的最后一次迁移,而不是失败的迁移。(哦,如果迁移输出包含版本号,那就太好了。)
因此,让我们尝试为失败的迁移 SimpleTest 运行 down:
什么也没有发生,也没有输出。但也许它还是运行了迁移?因此,让我们修复 SimpleTest 迁移中的语法错误,并尝试再次运行它。
没有。显然 migrate:down 没有用。它没有失败,它只是没有执行。
除了手动进入数据库并删除它,然后运行测试之外,没有办法摆脱那个重复的表。一定有比这更好的方法。
ruby-on-rails - 按指定顺序按 id 查找 ActiveRecord 对象的干净方法
我想获得一个给定 id 数组的 ActiveRecord 对象数组。
我以为
将返回一个包含对象 5、对象 2、然后是对象 3 的数组,但我得到的数组顺序为对象 2、对象 3 和对象 5。
ActiveRecord Base find 方法 API提到您不应该按提供的顺序期望它(其他文档没有给出此警告)。
一个潜在的解决方案是在Find by ids array 中以相同的顺序给出的?,但 order 选项似乎对 SQLite 无效。
我可以编写一些 ruby 代码来自己对对象进行排序(有点简单且缩放效果不佳或更好缩放且更复杂),但是有更好的方法吗?
ruby-on-rails - 如何获取 Ruby 类的名称?
如何从 ActiveRecord 对象中获取类名?
我有:
我试过:
我只需要字符串中的类名(User
在这种情况下)。有没有办法呢?
我知道这是非常基本的,但我搜索了 Rails 和 Ruby 的文档,但找不到。
ruby-on-rails - 诊断 Rails 应用程序在元素更新时挂起
在构建 Rails 应用程序以帮助小型酒店管理预订的过程中,我遇到了一个奇怪的应用程序挂起。建立预订工作正常;添加客人,将他们分配到房间等,没有问题。然而,当商人去“确认”询问时,Mongrel 把我挂在外面晾干。
预订的索引页面列出了当前的查询和已确认的预订:
在保留部分本身中,调用确认/取消确认逻辑的位只是与控制器操作的直接链接:
确认预订的控制器操作(映射到我的路线中的 PUT)如下所示:
'@reservation.save' 是诀窍。每次都有明确的应用程序挂起。
有人可以帮助我了解这里发生了什么吗?
/更新:
通过使用控制台,我能够以另一种方式演示该问题:
请注意,控制台也被锁定,我不得不中止保存!使用 Ctrl-C 命令。
为什么世界上会保存!正在这样做吗?
/更新:
知道了!!!它在我的模型中。我试图验证一个关联,但我已经得到了 has_many/belongs_to 的东西。
谢谢大家!