0

我正在尝试搜索日期,我的数据库中的格式是 2012-05-15。当我使用 datepicker 时,我有它,以便用户可以选择一个日期,然后显示为 15-05-2012。

我想搜索 2012-05-15 格式,而不改变查看者看到它的方式。我试图改变模型中的格式,但没有运气。

这是我的搜索视图:

<%= form_tag search_path, method: :get do %>
<%=  text_field_tag("start_date") %></br>
<%= submit_tag "Search", name: nil %>

<% end %>

这是我的 application.js:

jQuery(function(){
    jQuery('#start_date').val("");
    jQuery('#start_date').datepicker({dateFormat: 'dd-mm-yy'});
});

我的控制器:

def search


@project_search = Project.search( params[:start_date].order(sort_column + ' ' + sort_direction).paginated_for_index(per_page, page)

   @project = Project.new(params[:project])

respond_to do |format|
      format.html # search.html.erb
      format.json { render :json => @project }
    end

end

和我的模型:

def self.search(search_start_date) 
  return scoped unless search_start_date.present?
  where([start_date LIKE ?, "%#{search_start_date}%"])
end

我尝试使用 jquery 选项,但没有运气。

jQuery(function(){
jQuery('#start_date').val("");
jQuery('#start_date').datepicker({altField: '#start_date2', dateFormat: 'yy-mm-dd'});


});

希望有人可以帮助我。提前致谢!

4

1 回答 1

1

更改dateFormatjQuery Datepicker 实例选项改变用户查看日期的方式。

在你的模型中

def self.search(search_start_date) 
  return scoped unless search_start_date.present?
  search_start_date = Date.parse(search_start_date).strftime("%Y-%m-%d")
  where([start_date LIKE ?, "%#{search_start_date}%"])
end

验证search_start_date' 的初始格式以确保它是其他的也应该被考虑。

于 2012-07-25T11:51:41.307 回答