0

我正在尝试使用 where 子句并指示表格进行过滤。

目前我正在使用这个,只有当它是完全相同的用户名时才有效:

@diagnostics = Diagnostic.scoped

@diagnostics = @diagnostics.includes(:user).where(tbl_users: { username: "#{params[:search]}" }) if params[:search_by] == 'by_user'

我正在尝试进行搜索,它可以与like一起使用,但它不起作用:

@diagnostics = Diagnostic.scoped

@diagnostics = @diagnostics.includes(:user).where(tbl_users: { username: "%#{params[:search]}%" }) if params[:search_by] == 'by_user'

有什么解决办法吗?

谢谢。

4

2 回答 2

0

尝试这个。

@diagnostics = Diagnostic.scoped

@diagnostics = @diagnostics.includes(:user).where("users.username like '%?%'", params[:search]) if params[:search_by] == 'by_user'
于 2013-06-24T19:09:09.557 回答
0

您可以这样做:

@diagnostics = Diagnostic.scoped

@diagnostics = @diagnostics.includes(:user).all(:conditions => ['user_name LIKE ?', "%#{@q}%"])
于 2013-06-25T05:19:24.433 回答