在rails中使用mysql查询所需的建议

时间:2016-01-08 17:41:48

标签: mysql ruby-on-rails

我有以下两种模式:

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 } 
} 
] 

1 个答案:

答案 0 :(得分:1)

试试这个

@users = User.joins(:room).where("users.name LIKE ?", "%#{params[:name]}%").order("rooms.name asc")