1

iOS 开发者在这里学习 Rails。尝试根据has_many关系的属性查询记录的活动记录。抱歉,如果这很简单,但我就是想不通。我已经阅读并一直在尝试使用scope, .where, .joins,但是网上有很多相互矛盾的帖子和博客,我不确定使用哪个以及什么是正确的...

关于问题:

我有两个 ActiveRecord 模型:

class User < ActiveRecord::Base
  has_many :items
end

class Item < ActiveRecord::Base
  belongs_to :user
end

一个项目有一个属性title,我试图找到所有User具有一个title类似于字符串格式的某些搜索参数的项目的 s。

我已经设法通过搜索项目来做到这一点,然后.map像这样:

users_owning_item_in_search_parameter = Item.where{ (title =~ my{@search_param + "%"}) }.map! { |i| i.user }

(该语法来自squeel gem。)

Array但是当我想要一个时,该命令会返回一个ActiveRecord::Relation,因为我需要做一些需要这种实例类型的进一步过滤。

非常感谢任何帮助。

4

1 回答 1

5

我想你正在寻找这样的东西:

User.joins(:items).where('items.title LIKE ?', "#{@search_param}%")

如果您想利用 squeel,则必须对其进行一些修改。

于 2013-10-17T22:38:07.063 回答