问题标签 [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 投票
3 回答
1407 浏览

ruby-on-rails - Ruby on Rails:为什么当我将时间写入数据库时​​,时区会被修改,然后再读回?

我将 environment.rb 中的 config.time_zone 设置为“UTC”,当我发出“select now();”时,我的 mySQL 服务器返回本地时区的当前时间 当我要求“选择 utc_timestamp;”时,在 utc 中

我正在运行 rails 2.1.2、mysql gem 2.7.3、activerecord gem 2.1.2,并且 mysql --version 返回“Ver 14.12 Distrib 5.0.27 for Win32 (ia32)”。

编辑:我的 environment.rb 设置为 UTC,并且自从我开始项目以来一直如此。服务器重新启动不会产生任何变化。

任何想法是什么原因造成的?

0 投票
1 回答
1328 浏览

ruby-on-rails - 在分配虚拟属性时发出信号验证错误?

这是一个 Rails/ActiveRecord 问题。

我有一个模型,它基本上必须代表事件或表演。每个事件都有许多属性:属性基本上类似于“在这个事件中,人 X 有角色 Y”。

我得出的结论是,允许用户编辑此数据的最佳方法是提供一个需要结构化格式的自由文本字段,我将其称为角色字符串

singer: Elvis Costello, songwriter: Paul McCartney, ...

我使用自动完成功能来完成角色名称(歌手、词曲作者......)和人名。角色和人员都存储在数据库中。

为了实现这一点,我在 Event 模型中创建了一个虚拟属性:

这一切都很好。当角色字符串格式正确并且角色字符串给出的关联都检查出来时,整个事情运行得很好。

但是如果角色字符串格式不正确怎么办?好的,我想,我可以使用正则表达式和标准验证来检查格式:

但是如果角色字符串隐含的关联无效怎么办?例如,如果我给上面的角色字符串,并且Elvis Costello没有引用一个有效的人,会发生什么?

我想,好吧,我可以使用validates_each属性:role_string来查找关联,如果给定的名称之一不匹配任何内容,则抛出错误。

我的问题有两个:首先,我不喜欢这种方法,因为要验证关联,我必须解析字符串并查找它们,这重复了我自己要做的事情role_string=,除了实际将关联保存到数据库。

其次,......我如何表明在分配给这个虚拟属性时发生了错误?

0 投票
4 回答
1644 浏览

java - 在java中实现活动记录的最佳方法是什么?

我想知道Map<String,Object>对于普通记录的简单实现是否就足够了。

我想做类似于 Ror 的事情。当您自动将字段添加到数据库中的表时,您可以访问 Dto 中的字段。

我不想添加一个字段,然后必须将相同的字段添加到 DTO 声明中。它不干燥。

0 投票
3 回答
848 浏览

ruby-on-rails - 访问 has_many 关系时指定订单和限制的快捷方式?

在 ActiveRecord 模型中访问 has_many 关系时,是否有提供限制和订单的快捷方式?

例如,这是我想表达的:

与更长的版本相反:

我知道您可以直接在 has_many 关系中指定它,但有没有办法即时执行,例如在一个页面上显示 10 个帖子,但在另一个页面上只显示 3 个?

0 投票
3 回答
537 浏览

ruby-on-rails - 将 DB-ish 查询转换为 Rails ActiveRecord 模型术语是否有意义?

现在我需要这样的前 N ​​个类别...

但这让我的 Rails 良心耿耿于怀.. 似乎可以通过 Expense.find 并提供诸如 :group、:joins 之类的选项来实现相同的目标。

  • 有人可以将此查询翻译成 ActiveRecord 模型吗?
  • 值得吗...就我个人而言,我发现 SQL 更具可读性并且可以更快地完成我的工作。也许因为我仍在学习 Rails。不在源代码中嵌入 SQL 有什么好处(除了不能更改数据库供应商..sql 风格等)?
  • 似乎find_by_sql没有像find. 解决方法是什么?例如,如果我想将记录数限制为用户指定的限制。
0 投票
4 回答
6830 浏览

mysql - Rails 交易

我正在尝试使用ActiveRecord::Base.transaction. 我认为使用 Rails 1.2.6 和 mysql 5.0 默认情况下回滚不起作用。多玩一点,我发现autocommit在 mysql 连接中没有设置为 0。

问题:

1)如何禁用所有连接的rails中的自动提交?

2)它会对其他不必是事务性的代码产生一些负面影响吗?

0 投票
3 回答
1960 浏览

ruby-on-rails - 基于客户端的网站的最佳数据库策略(Ruby on Rails)

我已经建立了一个很好的网站系统,可以满足小众市场的需求。去年,我通过使用 Capistrano 将软件的副本部署到我的 Web 服务器来销售这些网站。

在我看来,这些网站的唯一区别是数据库、CSS 文件和用于单个客户图形设计的一小部分图像。

其他一切都完全相同,或者应该是……现在我已经部署了大约 20 个这样的站点,要让它们都使用相同的代码进行更新变得很麻烦。而这个问题只会变得更糟。

我在想我应该重构这个系统,这样我就可以使用一组部署的 ruby​​ 代码,通过传入请求的 URL 动态选择正确的数据库等。

似乎有两种处理数据库的方法:

  • 使用多个数据库,每个客户端一个
  • 使用一个数据库,每个表中都有一个 client_id 字段,以及一个额外的“客户端”表

多数据库方法目前对我来说是最简单的,因为我不必重构应用程序中的每个模型来将 client_id 字段添加到所有 CRUD 操作。

但是,每次我想迁移数据库时,都必须为数十个或数百个不同的数据库运行“rake db:migrate”会很麻烦。显然这可以通过脚本来完成,但它闻起来不太好。

另一方面,每个客户将在“项目”表中拥有 20K-50K 项目。当 items 表中有 50 万或百万个项目时,我担心全文搜索的速度。即使在 client_id 字段上有索引,我怀疑如果将项目分开到不同的客户端数据库中,搜索会更快。

如果有人对解决这个问题的最佳方法有明智的意见,我非常想听听。非常感谢提前...

- 约翰

0 投票
2 回答
3448 浏览

ruby-on-rails - 如何从 ActiveRecord 中的 Oracle 日期列返回日期(不是 TimeWithZone)?

环境:Rails 2.2.2、Oracle 10g

在我的 ActiveRecord 模型中声明为“日期”的大多数列都是这样的:日期:它们根本不关心时间。

所以使用这样声明的模型:#

编写这样的测试:

应该通过,不是吗?(当然,假设我在转录上述内容时没有搞砸任何事情)

但它没有——不完全是。我明白了:

所以我在数据库中输入了一个日期并得到了……得到了什么?

告诉我我实际上得到了一个ActiveSupport::TimeWithZone. 这根本不是我想要的。

有没有一种简单的方法来告诉 ActiveRecord 一些(不是所有)列是Dates 并且只有Dates?

更新:更多抱怨...

是的,我可以使用 to_date:

工作正常。但这就是我试图避免的。我让 AR 让我约会,我想要约会回来。

我可以在我的类中添加一个方法, Effective_date_as_date - 这也有效。但肯定不是不可能约会,dagnabbit。

接受前更新

最终我意识到为什么这是 Oracle 的一个特殊问题:DATE 和 DATETIME 之间没有区别,因此 ActiveRecord 无法单独判断零时间是指午夜(可能带有时区更正)还是只是日期。呸。愚蠢的甲骨文。所以我要么沿着插件路线走,改变我的数据库(很诱人,非常诱人),要么继续我目前的 to_date/to_time 混乱。

0 投票
1 回答
6153 浏览

ruby-on-rails - Rails:从 JSON 数组重建 ActiveRecord 对象

我有一个带有 ActiveRecord 对象的 JSON 数组。这些对象可以使用每个 AR 对象都有的 from_json 方法重建。但是使用 from_json 只能重建一个对象。

要处理一个数组,我当然可以从 JSON 数组中提取子字符串,然后在一个循环中从它自己的子字符串中创建每个对象。但是我想知道是否有更好的方法来做到这一点,而不涉及字符串操作。

0 投票
1 回答
2894 浏览

ruby-on-rails - 自引用 has_many 的问题:通过 Rails 中的关联

我正在阅读关于自我引用 has_many :through 数据情况的文章,因为我正在尝试构建一个使用它们的 Rails 应用程序。我在网上找到了这个示例情况,对此我有一个疑问。让我从这个人的博客中发布这个示例代码:

假设我正在构建一个网页,其中列出了其数据库中的第一个动物。此标题下方是百分比列表 (capture_percent)。每个百分比都是指该页面的动物狩猎的动物,但它不会告诉您动物的名称,只是百分比。点击任何给定的百分比将带您到相应的动物页面。

我知道,这是一个很难解决的问题,但我正在努力解决这个问题。我是否必须为 CapturePercent 创建一个单独的表?