Rails:查找属性包含某些值的记录

时间:2014-06-25 22:29:12

标签: ruby-on-rails include where

我有一个"商店"包含各种位置的模型。每个商店的属性中包括"品牌"这就是承载。

示例:Store1,品牌:" Nike,Adidas,Polo&#34 ;; Store2,品牌:" Jcrew,Polo"

我希望能够选择品牌所包含的所有商店"阿迪达斯" (也可能包含其他品牌)

有些事情:

@search = Stores.where(brands: params[:brand]) 

但需要它

@search = Stores.where(brands.include? params[:brand]) 

显然不起作用

处理此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

如果brands是字符串且params [:brand]包含单个品牌名称,则可以使用MySQL的LIKE功能:

@search = Stores.where(['BRANDS LIKE ?', "%#{params[:brand]}%"]) 

答案 1 :(得分:-3)

您可以使用以下语句执行此操作。

@search = Stores.where("brands = ?", params[:brand])

Hardtl rails tutorial

的清单11.43给出了一个类似的例子

您还应该注意,rails模型通常具有单一名称,即Store而不是Stores。

相关问题