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

ruby-on-rails - rake db:migrate 没有检测到新的迁移?

熟悉 Rails / ActiveRecord 2.1.1

  • 您使用(例如)ruby script\generate scaffold product title:string description:text image_url:string 创建第一个版本
  • 这将创建(例如)一个名为 20080910122415_create_products.rb 的迁移文件
  • 您使用 rake db:migrate 应用迁移
  • 现在,您使用 ruby​​ script\generate migration add_price_to_product price:decimal 在产品表中添加一个字段
  • 这将创建一个名为 20080910125745_add_price_to_product.rb 的迁移文件
  • 如果您尝试运行 rake db:migrate,它实际上会还原第一次迁移,而不是应用下一次!所以你的产品表会被破坏!
  • 但是如果你单独运行 rake,它会告诉你有一个迁移正在等待

请注意,应用 rake db:migrate(一旦表被销毁)将按顺序应用所有迁移。

我发现的唯一解决方法是指定新迁移的版本,如下所示:

所以我想知道:这是一种预期的新行为吗?

0 投票
3 回答
6700 浏览

ruby-on-rails - 以 DRY 方式覆盖 ActiveRecord 中的“查找”

我有一些模型需要自定义查找条件。例如,如果我有一个 Contact 模型,每次调用 Contact.find 时,我都想限制返回的联系人只属于正在使用的 Account。

我通过谷歌找到了这个(我已经定制了一点):

这很好用,除了 account_id 不明确的少数情况,所以我将其调整为:

这也很好用,但是,我希望它是干燥的。现在我有几个不同的模型,我希望使用这种功能。做这个的最好方式是什么?

当您回答时,请包含代码以帮助我们理解元编程 Ruby-fu。

(我使用的是 Rails v2.1)

0 投票
3 回答
7036 浏览

ruby-on-rails - 如何在 Rails 中的不同数据库上执行直接 SQL 代码

我正在编写一个 Rails 应用程序,它将监视某些特定数据库的数据质量。为了做到这一点,我需要能够对这些数据库执行直接 SQL 查询——这当然与用于驱动 Rails 应用程序模型的查询不同。简而言之,这意味着我不能使用通过 ActiveRecord 基本连接的技巧。

我需要连接的数据库在设计时是未知的(即:我不能将它们的详细信息放在 database.yaml 中)。相反,我有一个模型“database_details”,用户将使用它来输入应用程序将在运行时执行查询的数据库的详细信息。

所以到这些数据库的连接真的是动态的,细节只在运行时解决。

0 投票
7 回答
22171 浏览

ruby-on-rails - 混合 ActiveRecord 查找条件

我想在某些名称列表中查找 created_on >= some date AND name 组合的记录。

对于 ">=" 我必须使用 sql 条件。对于“IN”,我必须使用条件哈希,其中键是 :name,值是名称数组。

有没有办法将两者结合起来?

0 投票
5 回答
7476 浏览

ruby-on-rails - 在 Rails 中,使用 find 和 :select 后,我​​的对象不保存

运行类似:

@users = User.find(:first, :select => "name, lastname, Salary") for @user in @users do @user.salary = 100000 @user.save end

在 Mysql 表中查找之后,用户没有更新。

0 投票
3 回答
1590 浏览

ruby-on-rails - has_one :through 是如何工作的?

我有三个模型:

问题是,在执行过程中,如果我将一个包添加到 release_item 它不知道该包是一个包。例如:

看来我应该可以访问 item.pack,但它不知道该包是一个包项目。

0 投票
2 回答
2367 浏览

ruby-on-rails - ActiveRecord 模式与域对象或数据映射器模式有何不同?

我在看DataMapper,乍一看似乎使用 ActiveRecord ORM 模式。其他人说它使用 DataMapper 和/或域对象模式。

这些模式有什么区别?

0 投票
4 回答
5216 浏览

activerecord - 停止 Activerecord 加载 Blob 列

除非明确要求,否则我如何告诉 Activerecord 不加载 blob 列?我的遗留数据库中有一些相当大的 blob 必须排除在“普通”对象之外。

0 投票
4 回答
3363 浏览

ruby-on-rails - 按子属性对 Activerecord 查询进行分组

是否可以使用孩子的属性对查询进行分组?

不起作用。

但是,我可以将其author.city用作条件的一部分。

0 投票
4 回答
6962 浏览

sql - 如何在 Rails 中使用自定义连接预加载对象?

背景

正常的 rails 急切加载集合的工作方式如下:

这会生成一些 sql

问题

但是,我需要一个自定义连接(如果我使用 也可能出现这种情况find_by_sql)所以我不能使用香草:include => :companies

自定义 join/sql 将为我提供我需要的所有数据,但我如何告诉 activerecord 它属于关联Company对象,而不仅仅是一堆额外的行?

更新

我需要在联接中添加其他条件。像这样的东西: