SORU
4 Kasım 2010, PERŞEMBE


raylar - Vasiyet - İşleme - devise_error_messages

benim kullanıcı Düzenle sayfasında, aşağıdaki gibi bir satır var

<%= devise_error_messages! %>

Sorun bu uygulama geri kalanı yok çıkış hataları engel değildir

<% flash.each do |key, value| %>
    <div class="flash <%= key %>"><%= value %></div>
<% end %>

Benim sorum, ben hata çalışmak için mesaj flash kullanan diğerleri gibi hazırlamak için nasıl.her?

Teşekkürler

CEVAP
30 Kasım 2010, Salı


Bunu kendim için çalışıyorum. Ben sadece bu konunun https://github.com/plataformatec/devise/issues/issue/504/#comment_574788 Github açmış bulundu

Jose devise_error_messsages! sadece bir yöntem olduğunu söylüyorsaplamauygulama içerir rağmen) ve geçersiz kılma olmamız gerektiğini/değiştirin. Eğer bu bir yerde sanırım bizim gibi birkaç kişi var sanırım bu yüzden wiki, işaret olsaydı daha güzel olurdu.

Modülü yeniden açılması ve yöntemi yeniden tanımlamak, etkili bir varsayılan uygulama geçersiz kılma çalışacağım. Sana nasıl gidiyor bildireceğiz.

Güncelleme

Evet, bu işe yarar. app/helpers/devise_helper.rb Ben yarattım ve bu şekilde bozdu:

module DeviseHelper
  def devise_error_messages!
    'KABOOM!'
  end
end

Bunu bilerek, hata iletileri istediğim şekilde görüntülemek için bu yöntemi getirebilirim.

Orijinal sorununuzu çözmenize yardımcı olmak için Burada orijinal devise_helper.rb on Github. Hata iletileri geçilen nasıl bir göz atın:

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

Bu başlamanıza yardımcı olacaktır. :)

Başka bir güncelleme

resource nesne aslında hazırlamak (git şekil) tarafından kullanılan bir modeldir.

resource.class         #=> User
resource.errors.class  #=> ActiveModel::Error

Ayrıca çeşitli yerlerde erişim için daha yüksek bir kapsam (muhtemelen denetleyicisi gelen) tanımlanan görünüyor.

Yardımcın herhangi bir yerinde

module DeviseHelper
  def devise_error_messages1!
    resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
  end

  def devise_error_messages2!
    resource.errors.full_messages.map { |msg| content_tag(:p, msg) }.join
  end
end

Görünümünüz

<div><%= resource.errors.inspect %></div>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Grace Su

    Grace Su

    6 Ocak 2006
  • Migs351

    Migs351

    3 HAZİRAN 2007
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007