多くの従来のデータを扱っていますが、日時フィールドがnil/nullになることがあります。これにより、ローカリゼーションが中断されます。これを行うことを除いて、これを固定することをお勧めする方法はありますか:rails i18n - 日付が渡されない場合の処理方法l(無)
13
A
答えて
5
残念ながら、組み込みの解決策はありません。 postを参照してください。
人間が判読できない値を提供する独自のヘルパーを定義することができます。例:ラリー・Kの答えを拡張するために
def ldate(dt)
dt ? l(dt) : t("[???]")
end
13
、
ヘルパーは、国際化にオプションを渡すことのハッシュを含める必要があります。
def ldate(dt, hash = {})
dt ? l(dt, hash) : nil
end
これは、このようなオプションを渡すことができます:
= ldate @term.end_date, format: :short
18
私はこの問題を解決するためにクリーンな方法があると思います。
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
+0
素晴らしい!これは、Rails 4.2.0を使用して完全に動作します。 – anka
関連する問題
- 1. 変数が返されない場合の処理方法
- 2. jdbc.queryForObjectが行を返さない場合の処理方法
- 3. Vaadin。 UIが添付されていない場合の対処方法
- 4. WebページがBeautifulSoupにロードされない場合の処理方法
- 5. 例えばKeyDown Routed Eventがすでに処理されていない場合の処理方法。 TextBox
- 6. 変数が渡されない場合の修正方法
- 7. Python:何も返されない場合のJSONデコードエラーの処理
- 8. SQL Serverの日付書式が正しく処理されていない
- 9. count()で日付がグループ化され、count()で行が返されない場合
- 10. 日の値がない場合、日付文字列の日付クラスを変換する方法
- 11. 有効な値が返されない場合のCの処理は?
- 12. ECS-agentが接続されていない場合の対処方法
- 13. ブラウザで処理が中断された場合のGIF画像の処理方法
- 14. 無効な日付がnullでいっぱいの場合のJavaScript
- 15. 日付が変更された場合、期限切れの日付が機能しない
- 16. rails無効な日付の問題
- 17. 変換が行われない場合の処理
- 18. サーバーが利用できない場合のアプリの処理方法
- 19. Hadoopの日付の処理
- 20. Expect Script:引数が渡されない場合のデフォルト値の指定方法
- 21. UINavigationBarでUIBarButtonItemが表示されない場合の対処方法
- 22. 日付が変更されていない場合、「Attribute.Min []」の検証を無視します。
- 23. 日付が文字列の場合に日付表を照会する方法
- 24. RESTリソースが既存のリソースにリンクされて拡張されている場合の処理方法
- 25. Python:日付がNATの場合の日付の違い
- 26. rails 3 i18nの設定されたロケールが機能しない
- 27. ソースオブジェクトが指定されたプロパティを持たない場合のバインディングの処理方法?
- 28. Railsカレンダープラグイン:無効な日付エラー
- 29. ウィンドウサービスが終了した場合のイベントの処理方法
- 30. ファイルの処理POSTデータが渡されない
I猿は
relaxed_i18n.rb
これは、そのファイルの内容であると呼ばれる初期化子で国際化パッチを適用しました確かにここの2行目は決して実行されませんか? – Yule