Результаты поиска Ransack - to_xls?
У меня есть поисковая форма, которая прекрасно работает, я хотел бы добавить экспорт для пользователя, чтобы отправить содержимое набора результатов в файл XLS.
Я также успешно реализовал to_xls, однако он возвращает мне максимально возможную область поиска объекта, а не отфильтрованные результаты, показанные в представлении.
def index
@search = Expense.search(params[:q])
@expense_list = @search.result.sort_by(&:expense_date)
respond_to do |format|
format.html
format.xml { render :xml => @expense_list }
format.xls { send_data @expense_list.to_xls, :filename => '123.xls'}
end
end
Это как-то связано с тем, как Ransack использует метод GET? Любая помощь будет отличной.
Спасибо!
3 ответа
Я знаю, что это такой взлом, потратив много часов не получая его, я все равно использовал его.
<a href="/expenses.xls?<%= request.fullpath.split("?")[1] %>">make xls</a>
так что в основном он принимает путь поиска после?, затем добавляет его к выходному пути model.xls и затем он работает. Я ненавижу это сам, должен быть лучший путь, но сроки.
Здесь была хорошая ссылка.
Binoy Michael дал простое решение этого связанного вопроса, но с CSV вместо XLS. В моем случае, используя ответ Ронина, я просто переписал ссылку для работы с XLS, как показано ниже
<%= link_to "Download Excel", reports_path(params.merge(format: "xls")) %>
%= link_to "Download Excel", yours_controller_path(params.merge(format: "xls")) %>