我有以下两种模式:
class User < ActiveRecord::Base
belongs_to :room
end
class Room < ActiveRecord::Base
has_many :users
end
我希望我的查询返回包含与我的搜索关键字匹配的用户的房间。它应该只返回至少有一个用户匹配我的搜索关键字的房间。
现在我有这个问题:
users= User.where do name.matches("%#{params[:name]}%")
但它返回一个用户列表,我希望该列表按房间排序。
示例:
Rooms:
[
0:
{
name: room1
users: {# list of users that belong to room 1 and match my search keyword }
},
1:
{
name: room2
users: {# list of users that belong to room 2 and match my search keyword }
}
]
答案 0 :(得分:1)
试试这个
@users = User.joins(:room).where("users.name LIKE ?", "%#{params[:name]}%").order("rooms.name asc")