Ruby on rails Rails活动记录,其中链接正在丢失范围
型号Ruby on rails Rails活动记录,其中链接正在丢失范围,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,型号食品的范围已过期: 食品.rb 食品类{where('exp_date它被忽略,因为where不期望这样的作用域。但是您可以使用。替换 scope = scope.where( Food.expired.or(Food.where(status: 'COMPLETED')) ) 与 或 它被忽略,因为where不需要这样的作用域。但是您可以使用。替换 scope = scope.where( Food.expired.or(Food.where(status: 'COMPLETED
食品
的范围已过期
:
食品.rb
食品类 作用域:过期,->{where('exp_date它被忽略,因为where
不期望这样的作用域。但是您可以使用。替换
scope = scope.where(
Food.expired.or(Food.where(status: 'COMPLETED'))
)
与
或
它被忽略,因为where
不需要这样的作用域。但是您可以使用。替换
scope = scope.where(
Food.expired.or(Food.where(status: 'COMPLETED'))
)
与
或
如果需要进一步链接where
(使用和或或运算符),它是否会生成错误的查询?这取决于链接where
条件(始终使用和和添加)和或条件的方式和顺序(这将或
仅显示afair之前的最新状态).where
不需要这样的作用域-请您详细解释一下好吗?或者任何链接?只要看看:where
接受字符串、数组或散列,但不接受作用域。仔细看,您会发现第149行的输出并不是整个查询where(user\u id:user.id)
部分丢失。这只意味着Rails在添加的作用域上内部启动了一个数据库请求,试图使其有意义,但实际上没有将返回值添加到条件中。如果需要进一步链接where
(使用和或或运算符),它是否会生成错误的查询?这取决于链where
条件(始终添加和
)和或条件(只添加afair之前的最新条件)的方式和顺序.where
不需要这样的作用域-请您详细解释一下好吗?或者任何链接?只要看看:where
接受字符串、数组或散列,但不接受作用域。仔细看,您会发现第149行的输出并不是整个查询where(user\u id:user.id)
part丢失。这只意味着Rails在添加的作用域上内部启动了一个数据库请求,试图使其有意义,但实际上没有将返回值添加到条件中。
scope = scope.merge(Food.expired)
.or(Food.where(status: 'COMPLETED'))
scope = scope.where(status: 'COMPLETED').or(Food.expired)