Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对于大于整数的结果,使用.where条件_Mysql_Ruby On Rails - Fatal编程技术网

Mysql 对于大于整数的结果,使用.where条件

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 这会收到一个语法错误,因此我在中的比较可能是错误

尝试在Rails控制器中执行一些非常简单的操作。现在,我正在向一个用户显示与记分板表中的
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值,现在可以工作了。谢谢