Rails перенаправляет на страницу записи на пагинации с каминари после создания - PullRequest
0 голосов
/ 25 июня 2018

На одной из моих страниц указателя у меня есть пагинация каминари. На той же странице я также могу обработать действие создания с помощью form_with. Новая запись сохраняется на месте в соответствии с именем, поэтому она может быть в середине нумерации страниц. Вопрос в том, могу ли я перенаправить на эту страницу сразу после создания действия?

1 Ответ

0 голосов
/ 25 июня 2018

Да, вы можете просто добавить перенаправление после сохранения записи, что-то вроде этого примера, мы создаем файл case_file и после сохранения мы перенаправляем на индекс с идентификатором нашего файла case_file.

def create
  @case_file = CaseFile.new(case_file_params)
  if @case_file.save
    redirect_to case_files_path(to_record: @case_file.id), notice: "#{I18n.t 'created'}"
  else
    render :new
  end
end

затем на нашем контроллере индекса мы находим индекс сохраненной записи и вычисляем страницу, что-то вроде этого

def index
  page = 1
  if (params[:page])
    page = params[:page]
  elsif (params[:to_record])
    index = CaseFile.order(:name).pluck(:id).index(params[:to_record])
    page = index/CaseFile.default_per_page + 1 # or if you don't have the default per model, just put the value or get the general default one
  end
  @case_files = CaseFile.all.order(:name).page(page)
end
...