Ruby problems with Date.parse.. (3 elements of civil date are necessary)

On older machines you get problems using Date.parse. The problem occured on a debian 4.0 machine with Ruby 1.8.5 installed.

Instead of using:

Date.parse("2008/03/07")

Use:

Date.strptime("2008/03/07", '%Y/%m/%d')

Advertisements

Export .csv mit Ruby on Rails

Folgendes Plugin ‚fastercsv‘ muss über GEM installiert werden:

gem install fastercsv

Example Code from rubyonrails.org

require 'fastercsv'

class ReportController

  # example action to return the contents
  # of a table in CSV format
  def export_users
    users = User.find(:all)
    stream_csv do |csv|
      csv << ["first","last","id","email"]
      users.each do |u|
        csv << [u.first,u.last,u.id,u.email]
      end
    end
  end

  private
    def stream_csv
       filename = params[:action] + ".csv"    

       #this is required if you want this to work with IE
       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 :text => Proc.new { |response, output|
        csv = FasterCSV.new(output, :row_sep => "\r\n")
        yield csv
      }
    end
end