问题标签 [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.

0 投票
1 回答
967 浏览

sql - 查找具有多个 ActiveRecord HABTM 关联的记录

我有两个模型,由 Has 和 Belongs To Many 连接表连接。让我们将这些模型称为用户和事件。大多数用户有 0 个事件,而很少有一个或多个事件。我想做类似的事情:

User.find(:all, :joins => :events, :conditions => [" '计算事件的东西' > ?"], 0)

问题是,我不确定如何仅选择具有 1 个或多个关联事件的用户。

0 投票
4 回答
2678 浏览

sql - rails ActiveRecord find_by_sql 调用的结果的列顺序

我正在尝试整理一些基本的报告屏幕。我有一些相当复杂的 SQL 查询,我将它们输入 ActiveRecord 的 find_by_sql 方法。我在这里遇到的问题是我丢失了原始查询中给出的列顺序。我假设这是因为 Hash 类不保留其键的输入顺序。

有没有办法解决这个问题?我应该使用不同的方法然后 find_by_sql 进行查询吗?

0 投票
1 回答
269 浏览

mysql - 如何保持 ActiveRecord 关联 DRY?

我在尝试让 AR 查找器在我的应用程序中保持干燥时遇到问题。我创建了一个博客应用程序,当用户第一次查看它时,它会获取博客的所有相关页面、帖子、链接、标签和类别。博客控制器的示例显示操作如下所示:

正如您所看到的,它不是很干燥,因为在控制器中还有其他操作会调用相同的实例变量,例如 @tags 等。

我怎样才能使这个更干燥?我尝试将它移动到博客模型中,但我仍然需要在控制器中调用各种实例变量,例如 @tags 等。

有没有办法在第一次调用博客时存储所有这些变量并在控制器和操作中重用它们?

谢谢你的任何建议。我正在使用 Rails 2.1

0 投票
2 回答
1494 浏览

mysql - Rails 和 CouchDB - 架构问题

我正在开发一个使用 CouchDB 灵活存储文档的项目。我的系统要求与 CouchDB 存储完美匹配。

我的问题真的归结为:我是否也应该继续使用 ActiveRecord 和 MySQL……有很多方便的插件都可以与 ActiveRecord 一起使用(例如身份验证和访问控制)。只是想知道利用现有插件的优势是否值得额外的管理开销和可能的集成问题(跨不同的数据存储工作)。

0 投票
4 回答
2380 浏览

ruby-on-rails - 给定一组 ActiveRecord 对象,我可以通过方法调用轻松收集它们的关系吗?

假设我有以下代码:

for_sites 是 Language 模型中的 named_scope,它返回与这些站点关联的语言,并且语言与使用 has_many through 的站点关联。目标是让@languages 拥有与网站相关联的不同语言数组。

与其在第二行调用 Language 对象,我更愿意说

并将相同的列表返回给我。在 Rails 2.1(或边缘)中有什么方法可以干净地做到这一点?我知道关联和命名范围可以将数组对象扩展为具有属性,但除非我遗漏了一些在这里不适用的东西。任何这样做的插件都会受到欢迎,它不必是核心。

0 投票
16 回答
45028 浏览

ruby-on-rails - 如何替换 Ruby 中的重音拉丁字符?

我有一个ActiveRecord模型,Foo它有一个name字段。我希望用户能够按名称搜索,但我希望搜索忽略大小写和任何重音符号。因此,我还存储了一个canonical_name要搜索的字段:

我需要填写“这里的东西”来替换重音字符。有什么比

而且,就此而言,由于我不在 Ruby 1.9 上,我不能将那些 Unicode 文字放入我的代码中。实际的正则表达式会看起来更丑陋。

0 投票
4 回答
1107 浏览

sql - 如何查看 SQL ActiveRecord 生成的内容?

我想检查 ActiveRecord 生成的一些查询,但我不需要实际运行它们。有没有办法在查询返回结果之前获取查询?

0 投票
1 回答
4011 浏览

ruby-on-rails - 在 Ruby 中从 XML 字符串创建对象

我正在尝试从 Ruby 中的 XML 反序列化对象。

像这样简单的东西:

我收到一个错误:

NoMethodError:未定义的方法'stringify_keys!' 对于#String:0x20fc7cc>

我不确定我必须做什么才能将字符串从 XML 获取到对象。

更新: @avdi 给了我小费。我期待 from_xml 是一种自我方法。您必须先创建对象。

0 投票
2 回答
1611 浏览

nhibernate - NHibernate/ActiveRecord - 任何方式只映射到外键列?

我正在使用 Castle ActiveRecord,但这个问题也适用于 NHibernate,因为适用于 NHibernate 的解决方案应该适用于 ActiveRecord。无论如何,我拥有的是这样的底层表结构:

表A -hasMany-> 表B

我有相应的对象 EntityA 和 EntityB。EntityA 有一个 EntityB 对象的 IList。这部分工作正常。现在,我希望 EntityB 对 EntityA 有某种引用。我知道我可以使用 EntityB 上的 BelongsTo 属性为其提供对完整 EntityA 类型的实际引用,例如:

但我真正想做的是:

因此,EntityB 将仅存储父对象的 ID,而不是对实际对象的引用。这是一个微不足道的例子,但我有充分的理由想要采用这种方法。在我正在处理的应用程序中,我们有显示特定 EntityB 类对象的页面,我们希望这些页面包含指向相应父页面的链接(如超链接中的链接)。我们可以使用上面的第一种方法来做到这一点,但这需要在我真正需要的只是 ID 时加载整个 EntityA 对象。这不是什么大不了的事,但似乎很浪费。我知道我可以使用延迟加载,但同样,这对我来说更像是一种黑客行为......

我尝试使用 [Property] 属性标记外键,如下所示:

这种方法的问题在于,当您在新对象树上执行 EntityA.SaveAndFlush() 时,EntityB.ParentId 仍然为空。正确的值被写入数据库,我可以通过执行 EntityA.Refresh() 将值强制回 EntityB.ParentId,但同样,这似乎有点像 hack。

0 投票
8 回答
37321 浏览

ruby-on-rails - ActiveRecord 查找以

非常简单的问题 - 我如何进行搜索以查找名称以 ActiveRecord 中某个字符串开头的所有记录。我已经在互联网上看到了使用逐字 LIKE SQL 子句的各种位 - 但据我所知,这不是“正确”的做法。

是否有“正确”的 Rails 方式?