2011-02-25 51 views
0
def index 
    unless params['excel'].blank? 
    render_csv("patients-#{Time.now.strftime("%Y%m%d")}") 
    else 
    render 
    end 
end 

def render_csv(filename = nil) 
    filename ||= params[:action] 
    filename += '.csv' 

    if request.env['HTTP_USER_AGENT'] =~ /msie/i 
     headers['Pragma'] = 'public' 
     headers["Content-type"] = "text/plain" 
     headers['Cache-Control'] = 'no-cache, must-revalidate, post-check=0, pre-check=0' 
     headers['Content-Disposition'] = "attachment; filename=\"#{filename}\"" 
     headers['Expires'] = "0" 
    else 
     headers["Content-Type"] ||= 'text/csv' 
     headers["Content-Disposition"] = "attachment; filename=\"#{filename}\"" 
    end 

    render :layout => false 
    end 

我希望它使用不同的视图和布局,但我希望能够重用此功能,而不是硬编码模板...任何想法?呈现基于表单的CSV文件复选框[RAILS 3.0]

(现在我得到我的.csv文件HTML)

回答

0

我最终作出一个链接,并使用

respond_to do |format| 
    format.html 
    format.csv {render_csv("patients-#{Time.now.strftime("%Y%m%d")}")} 
    end