ruby-on-rails - Rails 4 - 如果条件不适用

标签 ruby-on-rails ruby-on-rails-4 scope

我想创建一个具有某些条件的范围,其中一个不返回特定范围。目前,此解决方案有效:

scope :my_scope, ->(my_var) {
  scope = where('TRUE')
  if my_var.condition1?
     scope = scope.where({ :some_condition => :some_value })
  end
  if my_var.condition2?
     scope = scope.where({ :some_condition => :some_value })
  end
  scope 
}

有没有其他更好的解决方案来做到这一点?

问候

最佳答案

在 Rails 4 中,你可以简单地使用 all :

scope :my_scope, ->(my_var) {
  if my_var.condition?
    where(some_condition: :some_value)
  else
    all
  end
end

关于ruby-on-rails - Rails 4 - 如果条件不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25241116/

相关文章:

ruby-on-rails - finder_sql 不使用 Rails 解析字符串

mysql - 由于错误的迁移而尝试重置我的数据库,如果没有 SQLException 甚至无法重置

ruby-on-rails - 有没有办法摆脱 IRB 中的 "hung"状态?

ruby-on-rails - validates_length_of :maximum and :minimum on ruby on rails 的自定义错误消息

javascript - 如何从模型存储 EXTJ 中读取额外的属性?

javascript - xpages - 如何从客户端 javascript 设置范围变量?

javascript - Ruby on Rails 和 Javascript 确认 Safari 12 中的弹出窗口

ruby-on-rails - 关联的 Rails 未初始化常量

ruby-on-rails - 为 mongoid 哈希字段设置默认哈希键

javascript - EaselJS键盘输入问题