2014-03-06 34 views
0

我試圖自定義我的設計錯誤消息,但屬性名稱始終包含在消息中。在設計錯誤上顯示的屬性名稱

我已經改變了我的en.yml文件:

en: 
    activerecord: 
    errors: 
     models: 
     user: 
      attributes: 
      password: 
       blank: "Error" 
     full_messages: 
     format: "%{message}" 

devise_helper.rb

module DeviseHelper 
    def devise_error_messages! 
    return "" if resource.errors.empty? 

    messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join 
    sentence = I18n.t("errors.messages.not_saved", 
         count: resource.errors.count, 
         resource: resource.class.model_name.human.downcase) 

    html = <<-HTML 
     <div id="error_explanation"> 
     <h2>#{sentence}</h2> 
     <ul>#{messages}</ul> 
     </div> 
     HTML 
    html.html_safe 
    end 
end 

因此,例如,在顯示錯誤消息上面的代碼是 「密碼錯誤「當我只想顯示」錯誤「

回答

1

你在呼喚你的色器件幫手覆蓋devise_error_messages!full_messages方法應該使用。 full_messages方法預先attribute name驗證error message

更換

messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join 

messages = resource.errors.messages.map { |attr,msg| content_tag(:li, msg.join(', ')) }.join 

見我的回答對this SO question得到一個更好的主意。

1

Y歐

en: 
    errors: 
    format: "%{message}" 
+0

仍然不能工作 –

+0

您是否也可以省略activerecord? – Danny