sql - 帮助 Rails find_by 查询

标签 sql ruby-on-rails

假设@news_writers 是一个记录数组。然后,我想使用 @news_writers 查找 @news_writers 中包含的所有新闻作者撰写的所有新闻项目。

所以我想要这样的东西(但这在语法上是不正确的):

@news = News.find_all_by_role_id(@news_writers.id) 

请注意

class Role < ActiveRecord::Base
  has_many :news
end

and 

class News < ActiveRecord::Base
  belongs_to :role
end

最佳答案

像 ennen 一样,我不确定你的模型应该有什么关系。但一般来说,您可以从给定集合中找到具有列值的所有模型,如下所示:

  News.all(:conditions => {:role_id => @news_writers.map(&:id)})

这将创建一个 SQL 查询,其条件如下:

  WHERE role_id IN (1, 10, 13, ...)

其中整数是@news_writers 的 ID。

关于sql - 帮助 Rails find_by 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741456/

相关文章:

sql - 找不到类型 'tSQLt.Private'

ruby-on-rails - 禁用 ActiveModel 回调

mysql - 数据清理、大型在线数据库中的迁移

ruby-on-rails - 安装 rdiscount (2.2.0.1) 时出错,Bundler 无法在 Mac OS 和 Ruby 2.7.1 上继续

sql - 如何为这个特定的表关系建模

MySQL UPDATE 使用 JOIN 到子查询

sql - ORA-01861: 文字与格式字符串不匹配

c# - SQL Server 存储过程结果返回

ruby-on-rails - Rails 跛脚过滤器?

ruby-on-rails - Heroku 日志中为 500,但没有来自 Rails 的错误详细信息(即使使用 rails_12factor)