【发布时间】:2018-08-21 08:45:08
【问题描述】:
我的 Rails 应用程序中有一个日期选择器,可以从特定日期选择数据,但我想将该日期选择器默认设置为“所有日期”以显示所有数据。我该怎么做?
以下代码是我的日期选择器代码。
<div class="col-md-2 col-sm-6"> <!-- DATE PICKER -->
<%= text_field_tag :date, @date.strftime("%m/%d/%Y"), data: {provide: 'datepicker'}, placeholder: I18n.t('admin.users.index.typing_searching_date'), class: 'form-control datepicker js-datepicker' %>
</div>
这里是按日期查询的功能。我目前了解的是我只需要在该功能中进行编辑。但我不知道该怎么做。
@comments = @comments.where('created_at >=? AND created_at <= ?', @date.beginning_of_day, @date.end_of_day)
def get_date
if params[:date].present?
date = Date.strptime(params[:date], "%m/%d/%Y")
@date = date.in_time_zone
else
@date = DateTime.now.in_time_zone
end
end
【问题讨论】:
-
我遇到了类似的问题。我们这样解决了 - 有一个选择,您可以选择
Current month、Previous month、All Time和Custom。选择自定义时,我们将显示日期选择器。我认为这应该适合你 -
我对 Rails 很陌生,我不知道在哪里添加这些。你能检查我编辑过的问题吗? @MrShemek
-
如果我理解正确,您的控制器中有这样的东西:
Post.where(created_at: get_date),对吧?你能提供你使用get_date方法的代码吗? -
@P.Boro ,是的...我编辑了我的问题,以便您现在可以看到
-
只需在
@comments.where行后添加if params[:date].present?。如果您想显示所有日期,那么您不想按日期过滤,那么您不应该这样做:P