2011-07-01 1 views
0

私はRuby on Rails 3.0.7を使用していますが、私のモデルファイルでpluralizeメソッドを使用して、メッセージ。例えばモデルファイルでカスタムエラーメッセージを作成する(例: 'pluralize'メソッドを使用)

、私は次のような何かをしたいと思います:

NAME_MIN_LENGHT = 2 # the value is '2' but I plan to change that (maybe dynamically... if it is possible) in future development 

validates :name, 
    :length  => { 
    :minimum  => NAME_MIN_LENGHT, 
    :too_short  => "is too short (minimum is #{pluralize(NAME_MIN_LENGHT, 'character')})", 
    }, 

私はそれをどのように行うことができますか?それはお勧めですか?どうして?

+0

これはうまくいかないのですが、lam bda?私はあなたがそれを工夫していると思う。あなたがこれに取り入れる努力は、 ':minimum'とエラーメッセージを変更する努力を上回ります。 – Wukerplank

答えて

0

私はWukerplankに少し勇気づけられているように思われますが、それでも興味深い質問です。 thisポストによると、あなたは、コントローラのメソッドでヘルパーを使用することができます。

は、クラスApplicationControllerにでこれを入れて:

def help 
    Helper.instance 
    end 

    class Helper 
    include Singleton 
    include ActionView::Helpers::TextHelper 
    end 

次に、あなただけのように同じようにそれを使用することができます:

def check_for_max_donkeys 
    if Donkey.find_fit_donkeys.size == APP_SETTINGS['max_fit_donkeys'] 
     flash_error "The maximum of #{help.pluralize(APP_SETTINGS['max_fit_donkeys'], 'donkey')} has been reached." 
     redirect_to_index 
    end 
    end 

私は似たような思いあなたの検証方法の中でうまくいくはずですが、試してみませんでした。もしうまくいくならメモを残してください:-)

関連する問題