penso che ci sia un modo più pulito per risolvere questo problema. Ho scimmia patchato I18n in un inizializzatore chiamato relaxed_i18n.rb
Questo è il contenuto di quel file:
module I18n
class << self
alias_method :original_localize, :localize
def localize object, options = {}
object.present? ? original_localize(object, options) : ''
end
end
end
E questo è il codice RSpec che ho usato per convalidare l'uscita di questo metodo:
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
Sicuramente la seconda riga qui non viene mai eseguita? – Yule