ruby-on-rails - rails : Query ActiveRecord by month and year

标签 ruby-on-rails ruby

在我的 Rails 项目中有一个搜索页面,其中包含一个下拉列表,日期范围值由 (-) 分隔。下拉选项如下:

Jan,2014 - March,2014
April,2014 - Jun,2014
....
Oct,2014 - Dec,2014

用户可以选择这些日期范围之一,并且只会显示属于所选日期范围的那些记录。过滤依据的字段是 start_date 和时间戳字段。

所以我想要这样的东西:

filter = params[:filter].split("-") 
@posts = Post.where(start_date: filter[0]..filter[1])

但是在参数中我只能得到月份和年份。我如何解析这些值,以便上述查询有效?

最佳答案

嘿,你可以尝试使用 Date.strptime 来解析字符串到日期

filter = params[:filter].split(" - ") 

使用 strptime 将字符串转换为日期

st_date = Date.strptime(filter[0],"%B,%Y")
end_date = Date.strptime(filter[1],"%B,%Y")

创建日期范围为第一个月的开始到第二个月的结束

date_range = st_date.beginning_of_month..end_date.end_of_month

@posts = Post.where(:start_date =>  date_range)

关于ruby-on-rails - rails : Query ActiveRecord by month and year,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37807898/

相关文章:

ruby-on-rails - 轮胎和elasticsearch_autocomplete口音和刻面

mysql - rails 3;事件记录;在哪里;数据库中两列之间的 NOT EQUAL 条件比较

ruby-on-rails - 在 Rails 5+ 中禁用 sprocket 资源缓存

ruby - 获取 Ruby 中数组排序排列的索引?

ruby-on-rails - ruby 正则表达式错误 : incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)

ruby - 动态常量赋值

ruby-on-rails - RVM 和 OSX Lion - 系统重启时 RVM 'forgets' gemsets

ruby-on-rails - Rails应用程序变量生命周期问题

ruby-on-rails - Rails 模型 - after_destroy 从未调用过

javascript - 我可以从 Rails 4 中的按钮提交传递参数吗?