I tried to search in the date field like this :
<%= f.label :datestarted_cont, "Date started Contains", class: "slbl four" %>
<%= f.text_field :datestarted_cont, class: "frm-element turquoise" %>
But it doesn't work. I want to search for at least the year. How can I do this?
Actually im not using a separate search method. Here's my index method where I do all the stuff :
def index
def serach
params[:q][:datestarted_cont] = change_date_format(params[:q][:datestarted_cont]) if !(params[:q][:datestarted_cont]).blank?
end
def change_date_format(date)
if date.include? '/'
date_array = date.split("/")
new_date = date_array[1]+"/"+date_array[2]+"/"+date_array[0]
puts new_date
return new_date
else
return date
end
end
############ Turn empty params[:district] to nil and params[:district] "Select District" to nil
if params[:q] != nil
params[:q][:district_cont] = nil_paramsdistrict(params[:q][:district_cont])
end
############ Turn empty @district to nil
@district = nil_district(@district)
############ Set the District. If params[:district] is not nil, @district = params[:district]. If params[:district] is nil and @district is not nil params[:district] = @district
set_district
if params[:commit] == "Clear"
params[:q] = nil
end
@search = Awardunit.search(params[:q])
@awardunits = @search.result.paginate(page: params[:page], per_page: 20)
@unitlist = @search.result
@units = @unitlist.size
@disabledunits = @unitlist.where(disabled: true).size
@leaders = 0
@unitlist.each do |unit|
@leaders = @leaders + unit.awardleaders.size
end
@disabledleaders = 0
@unitlist.each do |unit|
@disabledleaders = @disabledleaders + unit.awardleaders.where(disabled: true).size
end
@asstleaders = 0
@unitlist.each do |unit|
@asstleaders = @asstleaders + unit.asstawardleaders.size
end
@assessors = 0
@unitlist.each do |unit|
@assessors = @assessors + unit.assessors.size
end
@approvedassessors = 0
@unitlist.each do |unit|
@approvedassessors = @approvedassessors + unit.assessors.where(approved: true).size
end
@members = 0
@unitlist.each do |unit|
@members = @members + unit.members.size
end
@disabledmembers = 0
@unitlist.each do |unit|
@disabledmembers = @disabledmembers + unit.members.where(disabled: true).size
end
@bronzemembers = 0
@unitlist.each do |unit|
@bronzemembers = @bronzemembers + unit.members.where(currentaward: "Bronze").size
end
@silvermembers = 0
@unitlist.each do |unit|
@silvermembers = @silvermembers + unit.members.where(currentaward: "Silver").size
end
@goldmembers = 0
@unitlist.each do |unit|
@goldmembers = @goldmembers + unit.members.where(currentaward: "Gold").size
end
respond_to do |format|
format.html
format.pdf do
pdf = MemberPdf.new(@search.result.order( 'nyaaid ASC' ), view_context, Awardunit.all.size)
send_data pdf.render, filename: "AwardUnits_List.pdf", type: "application/pdf", disposition: "inline"
end
end
end
Try this
_form.html.erb
<%= f.label :datestarted_cont, "Date started Contains", class: "slbl four" %>
<%= f.text_field :datestarted_cont, class: "frm-element turquoise" %>
update:
def index
params[:q][:datestarted_cont] = change_date_format(params[:q][:datestarted_cont]) if !(params[:q][:datestarted_cont]).blank?
############ Turn empty params[:district] to nil and params[:district] "Select District" to nil
if params[:q]!= nil
params[:q][:district_cont] = nil_paramsdistrict(params[:q][:district_cont])
end
############ Turn empty @district to nil
@district = nil_district(@district)
############ Set the District. If params[:district] is not nil, @district = params[:district]. If params[:district] is nil and @district is not nil params[:district] = @district
set_district
if params[:commit] == "Clear"
params[:q] = nil
end
@search = Awardunit.search(params[:q])
@awardunits = @search.result.paginate(page: params[:page], per_page: 20)
@unitlist = @search.result
@units = @unitlist.size
@disabledunits = @unitlist.where(disabled: true).size
@leaders = 0
@unitlist.each do |unit|
@leaders = @leaders + unit.awardleaders.size
end
@disabledleaders = 0
@unitlist.each do |unit|
@disabledleaders = @disabledleaders + unit.awardleaders.where(disabled: true).size
end
@asstleaders = 0
@unitlist.each do |unit|
@asstleaders = @asstleaders + unit.asstawardleaders.size
end
@assessors = 0
@unitlist.each do |unit|
@assessors = @assessors + unit.assessors.size
end
@approvedassessors = 0
@unitlist.each do |unit|
@approvedassessors = @approvedassessors + unit.assessors.where(approved: true).size
end
@members = 0
@unitlist.each do |unit|
@members = @members + unit.members.size
end
@disabledmembers = 0
@unitlist.each do |unit|
@disabledmembers = @disabledmembers + unit.members.where(disabled: true).size
end
@bronzemembers = 0
@unitlist.each do |unit|
@bronzemembers = @bronzemembers + unit.members.where(currentaward: "Bronze").size
end
@silvermembers = 0
@unitlist.each do |unit|
@silvermembers = @silvermembers + unit.members.where(currentaward: "Silver").size
end
@goldmembers = 0
@unitlist.each do |unit|
@goldmembers = @goldmembers + unit.members.where(currentaward: "Gold").size
end
respond_to do |format|
format.html
format.pdf do
pdf = MemberPdf.new(@search.result.order( 'nyaaid ASC' ), view_context, Awardunit.all.size)
send_data pdf.render, filename: "AwardUnits_List.pdf", type: "application/pdf", disposition: "inline"
end
end
end
application_controller.rb
def change_date_format(date)
if date.include? '/'
date_array = date.split("/")
new_date = date_array[1]+"/"+date_array[2]+"/"+date_array[0]
puts new_date
return new_date
else
return date
end
end