rails活动记录中的Mysql查询

rails活动记录中的Mysql查询,mysql,ruby-on-rails,rails-activerecord,Mysql,Ruby On Rails,Rails Activerecord,如何将此Mysql查询转换为由rails活动记录运行 从opentimes中选择*,其中id=1并打开NOW() 任何帮助都将不胜感激。OpenTimes.where(id:1) 假设您遵循约定,并且ID是主键,则不需要查询的第二部分。即使如此,它仍然是: OpenTimes.where(id:1,'openNOW())OpenTimes.where(id:1) 假设您遵循约定,并且ID是主键,则不需要查询的第二部分。即使如此,它仍然是: OpenTimes.where(id:1,“openNO

如何将此Mysql查询转换为由rails活动记录运行

从opentimes中选择*,其中id=1并打开NOW()

任何帮助都将不胜感激。

OpenTimes.where(id:1)

假设您遵循约定,并且ID是主键,则不需要查询的第二部分。即使如此,它仍然是:
OpenTimes.where(id:1,'openNOW())
OpenTimes.where(id:1)

假设您遵循约定,并且ID是主键,则不需要查询的第二部分。即使如此,它仍然是:

OpenTimes.where(id:1,“openNOW()”)
假设您的模型名是OpenTime,列是id,则打开和关闭。 上述sql对应的活动记录查询将为:

OpenTime.where("entity_id = ? AND created_at < ? AND updated_at > ?", 1, Time.now, Time.now)
OpenTime.where(“实体id=”和在<创建\u,并在>更新\u?”,1,Time.now,Time.now)

假设您的模型名为OpenTime,列为id,则打开和关闭。 上述sql对应的活动记录查询将为:

OpenTime.where("entity_id = ? AND created_at < ? AND updated_at > ?", 1, Time.now, Time.now)
OpenTime.where(“实体id=”和在<创建\u,并在>更新\u?”,1,Time.now,Time.now)

在Opentime模型中定义一个范围:

class Opentime < ActiveRecord::Base
  ...
  scope :currently_open, -> { where('NOW() BETWEEN open AND closed') }
  ...
end

在Opentime模型中定义范围:

class Opentime < ActiveRecord::Base
  ...
  scope :currently_open, -> { where('NOW() BETWEEN open AND closed') }
  ...
end
ActiveRecord有一个方法,因此可以简单地使用它:

Opentime.find_by_sql("SELECT * FROM opentimes WHERE id=1 AND open < NOW() AND closed > NOW();")
Opentime.by_sql查找_(“从opentimes中选择*并打开NOW();”)
ActiveRecord有一个方法,因此可以简单地使用它:

Opentime.find_by_sql("SELECT * FROM opentimes WHERE id=1 AND open < NOW() AND closed > NOW();")
Opentime.by_sql查找_(“从opentimes中选择*并打开NOW();”)