我正在使用axlsx gem创建报告,我需要传递我选择以生成其报告的事件的ID,但是我不知道如何在我创建的控制器的操作中获取该ID。 / p>
我创建了此表,必须在其中获取要发送给操作的ID:
这是我表的代码,在这里我尝试传递id,但是我不知道如何在控制器中获取它:
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
routes.rb:
resources :report_assistants_by_events do
collection do
get "assistants_report"
end
end
答案 0 :(得分:0)
您需要在member
中使用collection
而不是routes.rb
,然后在控制器中,您可以通过params[:id]
访问id。
从assistants_report_admin_report_assistants_by_events_path
更改为collection
后,还需要用新路径替换member
。