我正在尝试使用where子句进行过滤并指示表。
目前我正在使用此功能,只有在用户名完全相同时才有效:
@diagnostics = Diagnostic.scoped
@diagnostics = @diagnostics.includes(:user).where(tbl_users: { username: "#{params[:search]}" }) if params[:search_by] == 'by_user'
我正在尝试进行搜索,它可以与喜欢一起使用,但它不起作用:
@diagnostics = Diagnostic.scoped
@diagnostics = @diagnostics.includes(:user).where(tbl_users: { username: "%#{params[:search]}%" }) if params[:search_by] == 'by_user'
任何解决方案?
感谢。
答案 0 :(得分:0)
试试这个。
@diagnostics = Diagnostic.scoped
@diagnostics = @diagnostics.includes(:user).where("users.username like '%?%'", params[:search]) if params[:search_by] == 'by_user'
答案 1 :(得分:0)
这是你可以做到的:
@diagnostics = Diagnostic.scoped
@diagnostics = @diagnostics.includes(:user).all(:conditions => ['user_name LIKE ?', "%#{@q}%"])