Ruby on rails rails:返回两个不同的合并结果
在我的用户模型中,根据角色=4的“角色”执行搜索我需要返回两个组合结果,但它只返回最后一个结果(user.tempOccessee\u用户)。我如何加入这些结果。在if角色==4中 def self.search(搜索,角色) 如果角色==3Ruby on rails rails:返回两个不同的合并结果,ruby-on-rails,Ruby On Rails,在我的用户模型中,根据角色=4的“角色”执行搜索我需要返回两个组合结果,但它只返回最后一个结果(user.tempOccessee\u用户)。我如何加入这些结果。在if角色==4中 def self.search(搜索,角色) 如果角色==3 User.questionsetter\u users.where(['login LIKE?或name LIKE?或email LIKE?和role\u id=?',“%{search}%”,“%{search}%”,“%{search}%”,role]
User.questionsetter\u users.where(['login LIKE?或name LIKE?或email LIKE?和role\u id=?',“%{search}%”,“%{search}%”,“%{search}%”,role]) 结束 如果角色==4
用户。考生\用户。何处(['login LIKE?或name LIKE?或email LIKE ?和角色_id=?',“%#{search}%”,“%#{search}%”,“%#{search}%”,角色])
用户.temp考生_用户。哪里(['login LIKE]或姓名 如?或电子邮件如?'、“%#{search}%”、“%#{search}%”、“%#{search}%”、“%#{search}%”) 结束 结束
如果role==4,则组合结果必须在步骤中返回。您的问题是什么?您想要两种类型的结果吗?一种是
role\u id=role
,另一种是不检查role\u id
?为此,你可以只写一行而不是两行User.testeer\u users.where(['login LIKE?或name LIKE?或email LIKE?或role\u id=?',“%\search}%”,“%\search}%”,“%\search}%”,“%\search}%”,role])
User.testeer\u用户。where(['login LIKE?或name LIKE?或email LIKE?和role\u id=?”,“%\search}%,role%,“%\search},search}%)它获取一些记录,其中role=4(想象10条记录)User.tempTesteer\u users.where(['login LIKE?或name LIKE?或email LIKE?'、“%#{search}%”、“%#{search}%”、“%#{search}%”),这还将获取一些记录(5条记录),因此总共15条记录必须返回((现在只有5条记录返回)),我要合并并发送。