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

0 投票
1 回答
4278 浏览

ruby-on-rails - 将自定义连接与常规导轨连接相结合

我有这样的模型 foo、bar 和 baz

我希望能够根据 Bar 和 Baz 的标准检索 Foo。因此,我需要加入这两个模型。我想用 Rails 魔法加入 Bar,

我想使用自定义加入加入 Baz。

独立地这些工作很好,但我似乎无法找到一种优雅地结合它们的方法。

我试图做天真的事情并将这两个条件组合在一个数组中,但无济于事。

文档声称我可以做到,Foo.find(:all, :joins => :bar, :joins => "left join baz ...")但这似乎不应该工作(并且它不在 rails 2.3.8 中),因为要查找的参数被包装在哈希中并且第一个 :joins 丢失了。

当然,我总是可以将两者组合成一个 :joins 字符串。但是,如何将这两个调用与尽可能少的原始 sql 结合起来呢?有任何想法吗?

编辑:接受的答案确实回答了我的问题,但我仍然认为可能有更好的方法。

编辑 2:正如 ruby​​prince 提到的,这已在 rails >= 3.0.0 中解决

0 投票
2 回答
1768 浏览

ruby-on-rails - Rails:在不创建对象的情况下添加新的 has_and_belongs_to_many 关联?

是否可以简单地添加新的关联?

我有两个对象通过 has_and_belongs_to_many 捆绑在一起。模型 A将始终是唯一的,但相应的模型 B对象可能已经在数据库中。

创建模型 A时,我如何告诉 Rails 找到相应的模型 B对象并将两个模型绑定在一起 - 或者 - 如果不存在适当的模型 B对象,则继续创建它?我应该执行 .where 查找,然后执行 SQL 查询以将两个 ID 添加到连接表中,还是有一个本机 ActiveRecord 方法来执行此操作?

0 投票
3 回答
948 浏览

ruby-on-rails - 如何在不更新相应模型属性的情况下更新 RoR 模型的关联

我的 Rails 3 应用程序中有以下模型(带有相应的数据库表):

我希望能够更新用户模型的关联服务,而无需指定密码和密码确认属性。我怎样才能做到这一点?

0 投票
2 回答
2104 浏览

ruby-on-rails-3 - 如何在范围内引用 belongs_to 关联?

我想创建一个范围,如何在范围内使用关联 :user?

(轨道3)

0 投票
4 回答
13850 浏览

sql - 在 Rails 3 / ActiveRecord 中构建 LIKE 查询时转义 %% 的正确方法

我想将 url 字段与 url 前缀(可能包含百分号)进行匹配,例如.where("url LIKE ?", "#{some_url}%"). 最Rails的方式是什么?

0 投票
2 回答
158 浏览

ruby-on-rails - Rails - 这是不好的做法还是可以优化?

这会被认为是不好的做法吗?

我意识到我可能会请求比我实际需要的更多数据,我可以以某种方式优化它吗?

域是一个唯一索引,因此查找应该相当快。

运行 Rails 3.0.7

0 投票
1 回答
600 浏览

ruby-on-rails - ruby on rails 中的 sql 查询

我有以下查询选择 * 其中 Zips 表中的显示等于用户表中的列。

这很好用,但是如何从 Zips 表中选择另一列将其打印出来?

Zip.where(:display => @user.location)

因此,例如 users 表有一个locationcol,而 zips 表有一个displayandzipcode列。我通过location从用户匹配到displayin zips 来找到正确的行,但需要从 zips 中的匹配条目中提取邮政编码......

0 投票
3 回答
21673 浏览

ruby-on-rails - 根据不同的字段/列查找记录?

我有一个存储了一些用户信息的数据库。例如,我知道:User.find(1)将返回 id:1 的用户

我应该怎么打电话才能通过电子邮件找到用户?我搜索了很多,但找不到任何东西。

我也试过User.find(:email => "xyz@abc.com"),但它不起作用。

0 投票
5 回答
8526 浏览

ruby-on-rails - Rails 3 SQLite3 布尔值 false

我试图在 SQLite3 表中插入一个假布尔值,但它总是插入一个真值。

这是我的迁移:

当我尝试使用 rails 插入时,它会产生以下 SQL:

SQLite 将 'f' 视为 true,因此它将 true 插入到我的数据库中。我希望它生成的查询是:

我究竟做错了什么?

导轨:3.0.7

sqlite3 宝石:1.3.3

0 投票
6 回答
121780 浏览

ruby-on-rails - ActiveRecord:大小与计数

在 Rails 中,您可以同时使用Model.size和来查找记录数Model.count。如果您正在处理更复杂的查询,使用一种方法比另一种方法有什么优势吗?它们有何不同?

例如,我有照片的用户。如果我想显示一张用户表以及他们有多少张照片,运行多个实例user.photos.size会比 快还是慢user.photos.count

谢谢!