在ruby表上的地方,SQL

时间:2013-06-24 19:02:08

标签: sql ruby-on-rails ruby where sql-like

我正在尝试使用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'

任何解决方案?

感谢。

2 个答案:

答案 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}%"])