【发布时间】:2009-12-01 22:46:36
【问题描述】:
Rails 插件 - Searchlogic,来自二进制逻辑 - 提供按日期过滤的功能。我的表单是这样设置的......
<% form_for @search do |f| %>
<%= f.label :start %> <%= f.select :due_at_after, [[['','']],['November', '2009-11-01'.to_date],['December', '2009-12-01'.to_date]] %><br>
<%= f.label :end %> <%= f.select :due_at_before, [[['','']],['December', '2009-12-01'.to_date],['January', '2010-01-01'.to_date]] %>
<%= f.submit 'Search' %>
<% end %>
但是,我从控制器中生成的@search 对象返回的日期...
@search = Task.with_member(current_user).search(params[:search])
正在生成一个看起来像这样的日期参数
{:due_at_after=>Sat, 31 Oct 2009 20:00:00 EDT -04:00}
使用这两种格式,表单将不会将下拉菜单显示为选中状态。看起来 searchlogic 对象中的格式也使用了时区调整时间。
关于如何处理这个问题有什么想法吗?
【问题讨论】:
-
我发现 calendar_date_select gem 有效,但仍然存在一些问题。日期格式发生了变化,但在文本字段中,这比选择框的问题要小。仍在寻找正确的方法来做到这一点。
标签: mysql ruby-on-rails datetime timezone searchlogic