使用数组中的链接模型来过滤名称

时间:2011-04-03 16:01:19

标签: ruby-on-rails ruby ruby-on-rails-3

用户拥有一个个人资料,个人资料属于用户。

我正在尝试查询搜索用户列表,我可以搜索用户配置文件中存在的名称。

这是我到目前为止所做的:

@user_list = User.where(:company_id => current_user.company.id)
  .joins(:profile).where("profile.first_name like ?", "%#{params[:q]}%")

这不起作用,但我不确定从哪里开始?

2 个答案:

答案 0 :(得分:1)

  1. 您没有编写错误消息或数据库表,但我猜这是一个rails约定,该表名为profiles而不是profile
  2. 您应该按公司范围进行搜索,而不是在用户模型中按ID进行查询
  3. 合:

    @user_list = current_user.company.users.
         joins(:profile).where("profiles.first_name like ?", "%#{params[:q]}%")
    

答案 1 :(得分:0)

尝试User.includes(:profile)而不是连接,并在日志中检查生成的sql查询。如果它不起作用,请向我们显示生成的sql。