我想給自定義驗證消息進行唯一性驗證。但是,對於錯誤消息,我需要稍微複雜的行爲,所以我將這個邏輯放在私有方法中()。使用幫助器方法的Rails自定義驗證消息
下面是我使用
validates_uniqueness_of :email, message: error_message_for_email_uniqueness
代碼下面是我得到
/Users/dylandrop/.rvm/gems/ruby-1.9.2-p290/gems/attr_encrypted-1.2.0/lib/attr_encrypted.rb:229:in `method_missing': undefined local variable or method `error_message_for_email_uniqueness' for #<Class:0x00000103684198> (NameError)
我使用message: lambda { error_message_for_email_uniqueness }
,這也不起作用嘗試錯誤。另外,我試過把它包裝在Proc中,而不是lambda,這不會讓我在任何地方。
我該如何解決這個問題?
哦,我沒有嘗試過使用lambda和class方法。假設它會是實例。你需要拉姆達的那些參數嗎? – varatis 2012-08-15 21:41:22
嘗試沒有參數,它似乎工作,我編輯我的答案。你也可以參考:http://stackoverflow.com/questions/6073303/how-to-customize-rails-activerecord-validation-error-message-to-show-attribute-v – 2012-08-15 21:42:20
另外,你會碰巧知道如何/如果我可以將記錄傳遞給'error_message_for_email_uniqueness'?我知道你可以通過錯誤和屬性,但我需要檢查記錄被保存是新的還是不是...... – varatis 2012-08-16 14:53:54