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
与字符串格式的某个搜索参数类似。
我设法使用搜索项目,然后像.map
这样设置:
users_owning_item_in_search_parameter = Item.where{ (title =~ my{@search_param + "%"}) }.map! { |i| i.user }
(该语法来自squeel gem。)
但是当我需要Array
时,该命令会返回ActiveRecord::Relation
,因为我需要进行一些需要此实例类型的进一步过滤。
任何帮助都非常感激。
答案 0 :(得分:5)
我认为你正在寻找这样的东西:
User.joins(:items).where('items.title LIKE ?', "#{@search_param}%")
如果你想利用吱吱声,你必须稍微修改一下。