Pagination

Hi
IN MY CONTROLLER

def search_sd_ticket
@search_sd_ui_hash=params[:sd_ticket]
puts @search_sd_ui_hash
@sd_ticket_number=@search_sd_ui_hash[:number]
puts @search_sd_ui_hash[:number]
@sd_ticket_status_id=@search_sd_ui_hash[:service_desk_status_id]
@sd_ticket_priority_id=@search_sd_ui_hash[:service_desk_priority_id]
@sd_ticket_primary_assignee=@search_sd_ui_hash[:primary_assignee]
@sd_ticket_start_date=@search_sd_ui_hash[:start_date]
@sd_ticket_end_date=@search_sd_ui_hash[:end_date]
@date_condition=nil

#if @sd_ticket_start_date=="" or @sd_ticket_end_date==""
 #     flash[:notice] = "Start date and end date are needed "
  #    render :action => 'search_sd_ticket_ui'
#end


      #@search_sd_ticket_result=ServiceDeskTicket.find(:all,

:conditions => “created_on > @sd_ticket_start_date AND created_on <
@sd_ticket_end_date”)

      # step 1: set the variables you'll need
        page = (params[:page] ||= 1).to_i
        items_per_page = 20
        offset = (page - 1) * items_per_page
      @search_sd_ticket_result = ServiceDeskTicket.find_where(:all )

do |sd|
sd.number.downcase =~
“%”+@sd_ticket_number.downcase+"%"
sd.service_desk_status_id==
@sd_ticket_status_id
sd.service_desk_priority_id==
@sd_ticket_priority_id
sd.primary_assignee==
@sd_ticket_primary_assignee
sd.created_on <=>
(@sd_ticket_start_date@sd_ticket_end_date) if
!@sd_ticket_start_date.empty? and !@sd_ticket_end_date.empty?
end

@item_pages = Paginator.new(self, @search_sd_ticket_result.length,
items_per_page, page)
@search_sd_ticket_result = @search_sd_ticket_result[offset…(offset +
items_per_page - 1)]

end

AND MY VIEW

<%= link_to(‘previous’,
:page => @item_pages.current.previous) if @item_pages.current.previous
%>

<% puts @search_sd_ui_hash[:number]%>
<%= link_to(‘next’,
:page => @item_pages.current.next,:sd_ticket=>@search_sd_ui_hash) if
@item_pages.current.next %>

FIRST PAGE OK .BUT WHEN I CLICK NEXT ERROR

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.downcase

WHAT MAY BE THE REASON
Sijo