Как передать id для действия в контроллере - Ruby on Rails - PullRequest
0 голосов
/ 12 декабря 2018

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

Я создал эту таблицу, в которой я должен получить идентификатор, который я хочу отправить в действие:

Моя таблица

Это кодмоя таблица, Здесь я пытаюсь передать идентификатор, но я не знаю, как получить его в контроллере:

def data
    events.map do |event|
      [
          event.name,
          (
              link_to(
                  raw("<button id='button' class='btn btn-default'><i class='fa fa-file-text' style='cursor: pointer;'></i></button>"),
                  assistants_report_admin_report_assistants_by_events_path(event.id, format: :xlsx)
              )
          )
      ]
    end
  end

Действие на моем контроллере:

def assistants_report
    @event_report = Event.where(id: "I need the id here!")
    respond_to do |format|
      format.xlsx {render xlsx: 'report_all_assistants', :filename => "aa.xlsx", layout: false, disposition: "attachment"}
    end
  end

маршрутов.рб:

resources :report_assistants_by_events do
      collection do
        get "assistants_report"
      end
    end

1 Ответ

0 голосов
/ 12 декабря 2018

Вам нужно использовать member вместо collection в вашем routes.rb, затем в вашем контроллере вы можете получить доступ к идентификатору с помощью params[:id].

Вам также необходимо заменить assistants_report_admin_report_assistants_by_events_path новым путем после изменения с collection на member.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...