Ruby on rails 活动脚手架:在带有时间戳的列上进行字段搜索
我在控制器中根据启用了字段搜索功能 我已经在两列上启用了字段搜索,如下所示Ruby on rails 活动脚手架:在带有时间戳的列上进行字段搜索,ruby-on-rails,activescaffold,Ruby On Rails,Activescaffold,我在控制器中根据启用了字段搜索功能 我已经在两列上启用了字段搜索,如下所示 class FooController
class FooController
列date的类型为date,在postgresql数据库中创建的列的类型为timestamp
使用上面的配置参数,我成功地在活动scaffold呈现的视图上获得了一个搜索表单。在搜索表单上有一个下拉列表,其中包含运算符(例如介于之间)和两个用于选择范围的输入控件
现在的问题是,按日期搜索效果很好,而按创建时间搜索则不起作用
经过详尽的研究,我发现了一个示例,其中描述了活动scaffold默认使用datetime格式,该格式在./config/locales/en.yml下配置,在我的示例中显示如下
en:
time:
formats:
default: "%Y%m%d%H%M%S"
很明显,输入格式是怎样的确实很重要。创建搜索的搜索输入为,例如:从201801000000到20181231000000
在网上,我发现了以下几点:
选项[:格式]可设置为:
日期和时间列,它将用作I18n.localize的format参数以对其进行格式化
我不明白我必须在控制器内的选项参数中定义什么样的值
config.columns[:created_at].options[:format] = ???
刚在写问题时找到答案:-) 如果我在./config/locales/en.yml中定义一个新条目,例如时间戳,如下所示
en:
time:
formats:
timestamp: "%Y%m%d%H%M"
并在我的控制器中执行以下操作
config.columns[:created_at].options[:format] = "timestamp"
然后,我可以通过在创建时输入201801010000和201812310000成功地进行搜索