Rails Несколько CSV-кнопок экспорта Маршрутизация - PullRequest
0 голосов
/ 02 июля 2018

Я хочу добавить на страницу две кнопки, каждая из которых загружает отдельный файл CSV, содержащий различную информацию. Тем не менее, я борюсь с маршрутизацией контроллера для двух разных загрузок.

Я работал с одной кнопкой, загружая один файл, но теперь я добавил новый параметр, чтобы различать две кнопки (и ссылку на два разных файла, которые нужно загрузить), и он говорит: «ШАБЛОН УДАЛЕНИЯ».

Вот мой код контроллера:

def show
    @shareholder = Shareholder.find(params[:id])
    respond_to do |format|
        format.html
        format.csv do
            if(params[:set] == 1) then
                send_data @shareholder.acquired_csv, filename: @shareholder.name + "-acquired-shares-#{Date.today}.csv" 
            end
            if(params[:set] == 2) then
                send_data @shareholder.summary_csv, filename:  @shareholder.name + "-sold-shares-#{Date.today}.csv" 
            end
        end
    end
end

Вот код для моих действий:

action_item :acquired_shares_csv, only: :show do
  link_to 'Acquired Shares CSV', shareholder_path( format: :csv, id: params[:id], set: 2 ) 
end

action_item :sold_shares_csv, only: :show do
  link_to 'Sold Shares CSV', shareholder_path( format: :csv, id: params[:id], set: 1 )
end

Кто-нибудь знает, что я мог бы сделать, чтобы две кнопки?

1 Ответ

0 голосов
/ 02 июля 2018

Полагаю, проблема в этом условном выражении params[:set] == 1 здесь все параметры строковые.

оно говорит "ШАБЛОН УТВЕРЖДЕНИЯ".

 format.csv do
    if params[:set] == 1
       # ....
    end
    if params[:set] == 2
       # ....
    end
 end

В этом случае params[:set] является строкой и становится "1" или "2", и ваш условный оператор пропускается, и Rails не может найти шаблон и выдает ошибку MISSING TEMPLATE.

Измените код с params[:set] == 1 на params[:set] == "1" или params[:set].to_i == 1, это должно решить вашу проблему.

...