0

日付で検索しようとしていますが、データベースの形式は 2012-05-15 です。日付ピッカーを使用すると、ユーザーが日付を選択できるようになり、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 に答える