Поиск по Rails с пагинацией не удаётся на следующей странице - PullRequest
0 голосов
/ 09 марта 2012

Хорошо, поэтому у меня есть форма

<form  action="/search" method="post">
<input type="hidden" name="location_id" value="1" /><br />
<input class='small' data-datepicker='datepicker' name='start_date' type='text' value='03-09-2012'>
<input class='small' data-datepicker='datepicker' name='end_date' type='text' value='03-09-2012'>
</form>

, и у меня есть маршрут

 match "/search", :to => "locations#search"  

, и в моем контроллере

def search
  @location = Location.find(params[:location_id])
  start_date = DateTime.strptime(params[:start_date], "%m-%d-%Y")
  end_date = DateTime.strptime(params[:end_date], "%m-%d-%Y")
  @songs = @location.songs.paginate(:page => params[:page], :per_page => 30, :conditions => {:play_date => start_date..end_date})
  render 'show'
end

Все отлично работает тогдакогда я нажимаю на страницу 2 или рядом с ошибками страницы, потому что у меня нет location_id или дат в параметрах .... есть идеи, как это исправить ... я использую гем will_paginate

Ошибка

Couldn't find Location without an ID

Параметры:

{"page"=>"2"}

1 Ответ

1 голос
/ 09 марта 2012

Вам нужно добавить параметры location_id в ваш помощник вида will_paginate следующим образом:

<%= will_paginate @some_objects, :params=>{:location_id=>@location.id} %>

Надеюсь, это поможет.

...