如何在rails中运行where搜索之前格式化列

时间:2015-07-15 19:07:02

标签: sql ruby-on-rails ruby ruby-on-rails-4

我有一个数据类型为datetime的列。我想使用:where搜索此列,并根据给定日期返回结果。问题是,:time_slot列有datetime对象,所以在运行搜索之前我需要先格式化列。关于我如何做的任何建议?

@movies = @movie_theater.showings.where({:time_slot => params[:day]})

1 个答案:

答案 0 :(得分:0)

在模型中创建范围

scope :on_day, lambda { |day| where('extract(day from time_slot) = ?', day) }

您稍后可以在您的控制器@movie_theater.showings.on_day('2015-1-1')

中使用它