0
我試圖將一組記錄導出到我的Redmine插件中的csv文件。記錄存儲在mysql數據庫中,該數據庫有一個列project_id
,用於將每個記錄綁定到特定項目。我只想導出與project_id
匹配的某些值的記錄。如何將數據導出到csv時包含參數?
應用程序/控制器/ foo_controller.rb:
before_filter :find_project
def index
@foos = Foo.order(:id).where("project_id = ?", @project.id) # csv request throws NoMethodError here because @project is nil.
respond_to do |format|
format.html
format.csv { send_data @foos.to_csv(:col_sep => ",") }
end
end
private
def find_project
if params[:project_id].present?
@project = Project.find params[:project_id]
end
end
init.rb
Redmine::Plugin.register :foo_plugin do
# Some info stuff...
# Some module/permission stuff...
menu :project_menu, :foos, {:controller => 'foo_con', :action => 'index'}, :caption => 'Foos', :param => :project_id
end
從我所知道的,問題出在CSV請求是如何在軌處理。首次加載索引頁時,params
陣列中將自動包含project_id
。但是,當它重新加載index
來處理csv請求時,project_id
不會被添加到params
陣列中。有什麼方法可以改變這種行爲嗎?