问题标签 [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 - 将自定义连接与常规导轨连接相结合
我有这样的模型 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:正如 rubyprince 提到的,这已在 rails >= 3.0.0 中解决
ruby-on-rails - Rails:在不创建对象的情况下添加新的 has_and_belongs_to_many 关联?
是否可以简单地添加新的关联?
我有两个对象通过 has_and_belongs_to_many 捆绑在一起。模型 A将始终是唯一的,但相应的模型 B对象可能已经在数据库中。
创建模型 A时,我如何告诉 Rails 找到相应的模型 B对象并将两个模型绑定在一起 - 或者 - 如果不存在适当的模型 B对象,则继续创建它?我应该执行 .where 查找,然后执行 SQL 查询以将两个 ID 添加到连接表中,还是有一个本机 ActiveRecord 方法来执行此操作?
ruby-on-rails - 如何在不更新相应模型属性的情况下更新 RoR 模型的关联
我的 Rails 3 应用程序中有以下模型(带有相应的数据库表):
我希望能够更新用户模型的关联服务,而无需指定密码和密码确认属性。我怎样才能做到这一点?
ruby-on-rails-3 - 如何在范围内引用 belongs_to 关联?
我想创建一个范围,如何在范围内使用关联 :user?
(轨道3)
sql - 在 Rails 3 / ActiveRecord 中构建 LIKE 查询时转义 %% 的正确方法
我想将 url 字段与 url 前缀(可能包含百分号)进行匹配,例如.where("url LIKE ?", "#{some_url}%")
. 最Rails的方式是什么?
ruby-on-rails - Rails - 这是不好的做法还是可以优化?
这会被认为是不好的做法吗?
我意识到我可能会请求比我实际需要的更多数据,我可以以某种方式优化它吗?
域是一个唯一索引,因此查找应该相当快。
运行 Rails 3.0.7
ruby-on-rails - ruby on rails 中的 sql 查询
我有以下查询选择 * 其中 Zips 表中的显示等于用户表中的列。
这很好用,但是如何从 Zips 表中选择另一列将其打印出来?
Zip.where(:display => @user.location)
因此,例如 users 表有一个location
col,而 zips 表有一个display
andzipcode
列。我通过location
从用户匹配到display
in zips 来找到正确的行,但需要从 zips 中的匹配条目中提取邮政编码......
ruby-on-rails - 根据不同的字段/列查找记录?
我有一个存储了一些用户信息的数据库。例如,我知道:User.find(1)
将返回 id:1 的用户
我应该怎么打电话才能通过电子邮件找到用户?我搜索了很多,但找不到任何东西。
我也试过User.find(:email => "xyz@abc.com")
,但它不起作用。
ruby-on-rails - Rails 3 SQLite3 布尔值 false
我试图在 SQLite3 表中插入一个假布尔值,但它总是插入一个真值。
这是我的迁移:
当我尝试使用 rails 插入时,它会产生以下 SQL:
SQLite 将 'f' 视为 true,因此它将 true 插入到我的数据库中。我希望它生成的查询是:
我究竟做错了什么?
导轨:3.0.7
sqlite3 宝石:1.3.3
ruby-on-rails - ActiveRecord:大小与计数
在 Rails 中,您可以同时使用Model.size
和来查找记录数Model.count
。如果您正在处理更复杂的查询,使用一种方法比另一种方法有什么优势吗?它们有何不同?
例如,我有照片的用户。如果我想显示一张用户表以及他们有多少张照片,运行多个实例user.photos.size
会比 快还是慢user.photos.count
?
谢谢!