使用重复值编写Ruby Hash而不重复值

neo*_*neo 1 ruby ruby-on-rails

我在rails控制器中有以下代码:

@users = User.where(["first_name = :first_name or
                    last_name = :last_name or
                    company = :company",
                    { first_name: term, last_name: term,
                    company: term }])
Run Code Online (Sandbox Code Playgroud)

期限是 term = params[:search]

我不喜欢我在重复 term

{ first_name: term, last_name: term,
                        company: term }
Run Code Online (Sandbox Code Playgroud)

有没有干燥的方法来实现这一目标?

谢谢!

fiv*_*git 6

你可以这样做:

@users = User.where("first_name = :term OR
  last_name = :term OR company = :term", term: term)
Run Code Online (Sandbox Code Playgroud)