Rails操纵模型查询

时间:2014-07-21 18:12:25

标签: ruby-on-rails ruby ruby-on-rails-4

假设我有params[:foo] = "bar"和一些保存的对象attribute = "key.bar" 如何操纵Model.where(attribute: params[:foo])查询attribute.split(".")[1]

2 个答案:

答案 0 :(得分:0)

我不确定是否有更好的方法,但我脑海中浮现的第一种方法是使用LIKE运算符。您可以这样写下您的查询:

Model.where("attribute LIKE '%?'", params[:foo])

注意,根据您发布的示例,我将通配符(%)放在该位置,以便该属性与以您的参数结尾的任何内容匹配。这假设您的所有属性与您描述的属性相似,但您当然可以根据自己的喜好进行更改。

此外,虽然我自己从未使用它,但我知道Squeel gem将此功能作为运算符提供(描述为here)。

答案 1 :(得分:0)

上面回答的小改动

Model.where("attribute LIKE '%.?'", params[:foo])

防止匹配.bar和.foobar。