通过ActiveRecord通过关联表搜索用户

时间:2013-08-26 16:49:18

标签: ruby-on-rails ruby activerecord

我正在使用Rails 2.3.18构建应用程序,并且我正在尝试查找在其配置文件中具有特定属性的所有用户。这是user.profile为单个用户找到的。用户个人资料上有专栏,例如first_namelast_namebirthday等。

我正在尝试设计一个ActiveRecord查询来查找所有具有某个名字的用户,例如。

类似的东西:

User.find(:where => {:first_name => "Tom"})

我应该如何格式化此查询?

1 个答案:

答案 0 :(得分:2)

对于Rails 2.3,您需要:

User.find(:all, :conditions => 'profiles.first_name = "Tom"', :joins => :profile)

如果您想加载个人资料,可以使用:include代替:joins,如下所示:

User.find(:all, :conditions => 'profiles.first_name = "Tom"', :include => :profile)

Rails 2.3将所有内容滚动到find,所以check out the docs for find可以查看所有可用选项。

显然,如果要将用户输入插入到名称条件中,请务必对其进行清理。