Рельсы 3
Используйте squeel gem.
Product.where(
:products => { :locale => 'en', :id.not_in => '1' },
:tags => { :name => ['a','b']}
).limit(5)
Рельсы 2
Используйте для этого AR Extensions . Поддерживаются следующие модификаторы условий:
* _lt => less than
* _gt => greater than
* _lte => less than or equal to
* _gte => greater than or equal to
* _ne => not equal to
* _not => not equal to
Теперь вы можете переписать ваш запрос следующим образом:
@products = Product.find(:all,
:limit => 5,
:joins => [:tags],
:conditions => { :locale => 'en', :id_not => '1', :tags => { :name => ['a','b']}
)