ruby-on-rails - 如何基于自定义模型方法查询Rails/ActiveRecord模型?

标签 ruby-on-rails ruby-on-rails-3 model rails-activerecord

免责声明:我对 Rails 还比较陌生。

我的模型中有一个自定义方法,我想查询它。该方法称为“active?”,返回一个 bool 值。我真正想做的是创建以下形式的 ActiveRecord 查询:

Users.where(:active => true)

当然,当我按原样运行上述内容时,我得到一个“列不存在”,所以我的问题如下:

如何执行与上述相同的操作,但对于模型上的自定义方法而不是实际的数据库列?

最佳答案

而不是使用主动?方法,您将有一个范围来帮助查找匹配的项目。

类似这样的事情...

def self.active
  joins(:parent_table).where(:archived => false).where("? BETWEEN parent_table.start_date AND parent_table.end_date ", Time.now)
end

而且,你应该能够做到这一点

def active?
  User.active.exists?(self)
end

如果您想重用此范围进行实例测试。

关于ruby-on-rails - 如何基于自定义模型方法查询Rails/ActiveRecord模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16702676/

相关文章:

asp.net-mvc - ASP.NET MVC : HOWTO: Update database after editing multiselectlist (listbox)

python - 没有GUI的合金模型

Django,自动生成唯一的模型字段,如果不唯一则递归调用自动生成器

ruby-on-rails - Rails Production - 如何设置Secret Key Base?

ruby-on-rails - Rails 应用程序中 Grape::Middleware::Formatter#call 方法的新遗物自定义检测

html - 在我的域服务器上使用 Ruby on Rails 应用程序

unit-testing - 给定一个典型的 Rails 3 环境,为什么我无法执行任何测试?

ruby-on-rails - 我无法在 Ubuntu 14.02 中使用 ruby​​ 2.2.2 和 Rails 4 运行服务器

ruby-on-rails-3 - 范围但错误消息 ArgumentError : tried to create Proc object without a block

css - Rails 3 - 创建更多缩略图还是只创建一个缩略图并通过 CSS 调整大小更好?