gpt4 book ai didi

ruby-on-rails - 在开始日期和结束日期之间搜索记录以进行搜查

转载 作者:行者123 更新时间:2023-12-04 13:40:48 26 4
gpt4 key购买 nike

嗨,我正在使用ransack + kalendae_assets gem在开始日期和结束日期之间搜索记录
为此,我通过引用使用ransack PREDICATES
https://github.com/ernie/ransack/blob/master/lib/ransack/constants.rb

这是我的代码

<%= search_form_for @search, url: guest_search_rooms_path, html: {:method =>:post} do |f| %>
<%= f.label :start_date_eq , "Start Date"%>
<%= f.text_field :start_date_eq, class: 'release_date' %>

<%=f.label :end_date_eq, "End Date" %>
<%= f.text_field :end_date_lteq, class: 'release_date' %>
<%= f.submit "search" %>
<% end %>

rooms.controller
def guest_search 

@search = Room.search(params[:q])
@roome = @search.result(:distinct => true)
@room= @roome.where("status IS ?", true).order("room_type_id desc")

#@room = @search.result(:distinct => true)
end

但是当我输入开始日期和结束日期时,它不会搜索我该怎么做

最佳答案

您可以将范围与开始日期和结束日期一起使用。然后,您可以获取日期之间的搜索结果。这是您的搜索表单中的示例代码:

<div class="control-group">
<%= f.label :scrap_date_cont, "Scrap Date", class: 'control-label' %>
<div class="controls">
<% if q.scrap_date_cont.blank? %>
<%= f.text_field :scrap_date_cont, include_blank: true, default: nil, :class => 'datepicker3', :style=>"width:100px;" %>
<% elsif !q.scrap_date_cont.blank? %>
<%= f.text_field :scrap_date_cont, :value => "#{change_date_format_for_edit_page(q.scrap_date_cont)}", :class => 'datepicker3', :style=>"width:100px;" %>
<% end %>&nbsp;<%= link_to "Select Range", "#", :id => 'dates' %>

</div>
</div>


<div class="control-group" id="range" style="display:none" >
<%= f.label :scrap_date_gteq, "Range", class: 'control-label' %>

<div class="controls">
<% if q.scrap_date_gteq.blank? %>
<%= f.text_field :scrap_date_gteq, include_blank: true, default: nil, :class => 'datepicker1', :style=>"width:100px;" %>
<% elsif !q.scrap_date_gteq.blank? %>
<%= f.text_field :scrap_date_gteq, :value => "#{change_date_format_for_edit_page(q.scrap_date_gteq)}", :class => 'datepicker1', :style=>"width:100px;" %>
<% end %>

<% if q.scrap_date_lteq.blank? %>
<%= f.text_field :scrap_date_lteq, include_blank: true, default: nil, :class => 'datepicker2', :style=>"width:100px;" %>
<% elsif !q.scrap_date_lteq.blank? %>
<%= f.text_field :scrap_date_lteq, :value => "#{change_date_format_for_edit_page(q.scrap_date_lteq)}", :class => 'datepicker2', :style=>"width:100px;" %>
<% end %>
</div>
</div>

这是 Controller 代码:
params[:q][:scrap_date_cont] = change_date_format(params[:q][:scrap_date_cont]) if !(params[:q][:scrap_date_cont]).blank?
params[:q][:scrap_date_cont] = params[:q][:scrap_date_cont].to_date.strftime("%d/%Y/%m") if !(params[:q][:scrap_date_cont]).blank?
params[:q][:scrap_date_gteq] = change_date_format(params[:q][:scrap_date_gteq]) if !(params[:q][:scrap_date_gteq]).blank?
params[:q][:scrap_date_gteq] = params[:q][:scrap_date_gteq].to_date.strftime("%d/%Y/%m") if !(params[:q][:scrap_date_gteq]).blank?
params[:q][:scrap_date_lteq] = change_date_format(params[:q][:scrap_date_lteq]) if !(params[:q][:scrap_date_lteq]).blank?
params[:q][:scrap_date_lteq] = params[:q][:scrap_date_lteq].to_date.strftime("%d/%Y/%m") if !(params[:q][:scrap_date_lteq]).blank?

辅助程式码:
#Change date format in edit time
def change_date_format_for_edit_page(date)
new_date = date.strftime("%m/%d/%Y")
puts new_date.inspect
return new_date
end

脚本 :
$("#dates").click(function () {
var $that = $(this);
$("#range").toggle("slow", function() {
$that.toggleClass("toggled-off");
});
});

我认为这可能对您有帮助...

关于ruby-on-rails - 在开始日期和结束日期之间搜索记录以进行搜查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15895065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com