如何编写一个属性小于其他属性的范围?

时间:2013-10-18 16:08:26

标签: mysql ruby-on-rails ruby scope

我试过这个

scope :opened, lambda {       
  where("entries_count <= limit")
}

但是我收到了一个错误:

  

Mysql2 ::错误:您的SQL语法中有错误;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   在第1行使用'limit'附近:SELECT shifts。* FROM shifts WHERE   (entries_count&lt; = limit)

2 个答案:

答案 0 :(得分:-2)

entries_count和limit活动记录属性是否都映射到列?

scope :opened, -> { where(:entries_count <= :limit }

答案 1 :(得分:-2)

你可以通过以下方式获得:

scope :opened, lambda { |limit| where("entries_count <= ?",  limit) }

或这种方式是更新的lambda语法:

scope :opened, -> limit { where("entries_count <= ?",  limit) }