Mysql 对于大于整数的结果,使用.where条件
尝试在Rails控制器中执行一些非常简单的操作。现在,我正在向一个用户显示与记分板表中的Mysql 对于大于整数的结果,使用.where条件,mysql,ruby-on-rails,Mysql,Ruby On Rails,尝试在Rails控制器中执行一些非常简单的操作。现在,我正在向一个用户显示与记分板表中的user\u id匹配的所有结果 我现在想调整它,以显示他们的用户id的结果,但也只显示分数大于整数0的结果。因此,我将控制器更改为: def index @scoreboards = Scoreboard.where(user_id: current_user.id, "score >= 0").order(score: :desc) end 这会收到一个语法错误,因此我在中的比较可能是错误
user\u id
匹配的所有结果
我现在想调整它,以显示他们的用户id
的结果,但也只显示分数
大于整数0的结果。因此,我将控制器更改为:
def index
@scoreboards = Scoreboard.where(user_id: current_user.id, "score >= 0").order(score: :desc)
end
这会收到一个语法错误,因此我在中的比较可能是错误的。我应该如何添加第二个条件 我想试试这个:
@scoreboards = Scoreboard.where(user_id: current_user.id)
.where("category >= 0").order(score: :desc)
我想试试这个:
@scoreboards = Scoreboard.where(user_id: current_user.id)
.where("category >= 0").order(score: :desc)
我尽量避免将此类数据库操作直接放在控制器中,因为模型是更合适的位置。我将在模型中编写三个作用域:
class Scoreboard < ActiveRecord::Base
#...
scope :for_user_id, ->(user_id) { where(user_id: user_id) }
scope :with_scores, -> { where('score > 0') }
scope :by_descending_score, -> { order(score: :desc) }
#...
end
这使控制器更薄(更可读),同时可能支持以最原子的方式重新使用这些查找,并使数据库逻辑完全包含在模型中。我尽量避免将此类数据库操作直接放在控制器中,因为模型是更合适的位置。我将在模型中编写三个作用域:
class Scoreboard < ActiveRecord::Base
#...
scope :for_user_id, ->(user_id) { where(user_id: user_id) }
scope :with_scores, -> { where('score > 0') }
scope :by_descending_score, -> { order(score: :desc) }
#...
end
这使控制器更薄(更可读),同时可能支持以最原子的方式重新使用这些查找,并使数据库逻辑完全包含在模型中。这是可行的。出于我的目的,我刚刚将第二个.where
调整为.where(“score>0”)
,这样它就删除了那些0值,现在可以工作了。谢谢,这很有效。出于我的目的,我刚刚将第二个.where
调整为.where(“score>0”)
,这样它就删除了那些0值,现在可以工作了。谢谢