繁体   English   中英

Rails ActiveRecord / SQL查询最佳实践

[英]Rails ActiveRecord/SQL Query best practice

我有一个包含以下列的表:

  • show_days_before_start(整数)
  • start_time(DATETEXT)

“show_days_before_start”列的目的是将日期添加到“start_time”以确定记录何时应该开始出现在结果中(如果它超出此时间则不应显示)(此列可能具有7的值)到21),“start_time”只是记录所指的事件开始时的日期时间戳。

我需要一个查询来执行上述操作并返回相关记录。 在查询设计方面,最好的方法是什么?

这是错误的做法。 将数据集插入数据库时​​应生成显示日期! 添加一个名为display_time的列:

add_column :table_name, :display_time, :timestamp

然后在模型中为display_time_reader添加attr_readerattr_accessor

attr_accessor :display_time_reader
attr_reader :display_time_reader

然后定义display_time_reader=方法:

def display_time_reader=(days_before_start)
     self.display_time=self.start_time-days_before_start.days
end

然后添加一个text_field :display_time_reader (您也可以将值为7..21的下拉列表)添加到_form.html.erb ,当您输入5时,它会将start_date - 5天保存到display_time字段。 然后你可以查询:

ModelName.where("display_time > ?", Time.now) 

这将是一个处理这个问题的干净方法!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM