所以我有数据库查询
ageVariable = 36
Actor.where("age > ?", ageVariable)
是否可以避免?
语法?
我正在寻找基于:key
的解决方案,看起来像这样:
Actor.where(age: greater_than(age_variable)
或...where(age: > age_variable)
回应@bounty回答: 范围并不能解决问题。
Actor.where(:created_at => (1000000.years.ago..2.days.ago)
听起来很糟糕
答案 0 :(得分:4)
您可以使用Arel在不使用原始SQL的情况下完成此任务:
Actor.where(Actor.arel_table[:age].gt(36)).all
答案 1 :(得分:0)
您可以使用范围条件。
ageVariable = (36..1000)
Actor.where(:age => ageVariable)
这将给出36-1001之间的所有演员
答案 2 :(得分:0)
ageVariable = 36
Actor.where("age > :target_age", target_age: ageVariable)
我避免使用?
并使其看起来像后者...where(age: > age_variable)
...我甚至没有使用between
而是greater than
。我是否更接近你的想法?