Notes posted by sshaw
RSS feed
Rendering After Exception In respond_to() Block
Remember, format blocks set the response’s content type. This can present problems when handling errors.
class MediaController rescue_from ActionController::MissingFile do |e| # User's browser probably wont display this # Content-Type is application/x-shockwave-flash render :file => File.join(Rails.public_path, '404.html'), :status => 404 end # show details or stream video def show @media = Media.find params[:id] respond_to do |format| format.html format.flv { send_file @media.path, :disposition => 'inline' } end end end
For these situations you must set :content_type when calling render:
render :file => File.join(Rails.public_path, '404.html'), :status => 404, :content_type => 'text/html'

nil Argument Raises An I18n::ArgumentError
You might want to do this:
module ActionView module Helpers module TranslationHelper def localize(*args) #Avoid I18n::ArgumentError for nil values I18n.localize(*args) unless args.first.nil? end # l() still points at old definition alias l localize end end
end

Mode Flags
RDONLY, TRUNC, etc… are defined in the File::Constants module which is include'd by IO and File.
IO.open fd, IO::RDONLY File.open path, File::RDONLY
Though as pointed out above, they are interchangeable.


Errors Raised
Non IO errors (IOError) are contained in the Errno module. They are the same as those given in open(2), see:
http://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html#ERRORS
Common Errors
-
Errno::ENOENT: No such file or directory
-
Errno::EACCES: Permission denied
-
Errno::EEXIST: File exists (i.e. IO::EXCL | IO::CREAT)