Ruby on rails Rails3-使用联接查找(:all),如何包含联接中的记录?

Ruby on rails Rails3-使用联接查找(:all),如何包含联接中的记录?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在我的用户模型中,我有以下内容: @users = find(:all, :joins => :instance, :conditions => ['fname LIKE ? or lname LIKE ?', "%#{search}%", "%#{search}%"]) 这里的问题是@users只返回用户表中的数据,而不返回联接实例表中的数据。我通过日志中的SQL查询确认了这一点 SELECT "users".* FROM "users" INNER JOIN "instance

在我的用户模型中,我有以下内容:

@users = find(:all, :joins => :instance, :conditions => ['fname LIKE ? or lname LIKE ?', "%#{search}%", "%#{search}%"])
这里的问题是@users只返回用户表中的数据,而不返回联接实例表中的数据。我通过日志中的SQL查询确认了这一点

SELECT "users".* FROM "users" INNER JOIN "instances" ON "instances"."id" = "users"."instance_id" WHERE (fname LIKE '%%' or lname LIKE '%%')
如何让rails选择users.*和instance.name


谢谢

您能使用:选择选项并指定“users.*,instance.name”吗?

谢谢,但这看起来像是一种黑客行为。。。它是?为什么要联接表而不包括另一个表的结果?试图了解Rails在做什么,为什么?我会认为这是黑客攻击。通常,当您在rails中执行查询时,您只会得到您正在查询的模型的结果(以用户为例)。您打算如何使用实例名称?标准方法是使用user.instance.name获取它,而不是将其包含在您的选择中。