Я думаю, что есть более чистый способ исправить это. Я обезьяна пропатчил I18n в инициализаторе под названием relaxed_i18n.rb
Содержимое этого файла:
module I18n
class << self
alias_method :original_localize, :localize
def localize object, options = {}
object.present? ? original_localize(object, options) : ''
end
end
end
И это код RSpec, который я использовал для проверки вывода этого метода:
require 'spec_helper'
describe 'I18n' do
it "doesn't crash and burn on nil" do
I18n.localize(nil).should == ''
end
it 'returns a date with Dutch formatting' do
date = Date.new(2013, 5, 17)
I18n.localize(date, format: '%d-%m-%Y').should == '17-05-2013'
end
end