Devise'yi uygulamanıza entegre etmeye çalışıyorum. Sayfanın üst kısmındaki oturum açma formuna ihtiyacım var (bu formu sayfa haline getirdim) ve kayıt formunu içeren kayıt işlemini uygulamam gerekiyor. Ancak yanlış kayıt verileri göndermeye çalıştığımda her iki form için doğrulama hataları gösteriliyor.Devise. Aynı sayfadaki Kayıt ve Giriş
cevap
Daha fazla bilgi olmadan sorunun ne olduğunu tahmin etmek zor. Ben, gerçekten yararlı (ve giderek öylesine) olmak üzere Wiki sayfalarını bulundu Zaten sahip olsa onları yere baktım: ihtiyaçlarınıza alakalı olabilir
İki sayfaları:
Bu yardımcı olur umarız!
- ff
Sorun buldum, Devise'ye bağlı değildi. Her form için nesne adını değiştirdim ve düzgün çalışıyor. –
@VitalyAksionchyk, yaptığınız işi daha ayrıntılı olarak açıklayabilir misiniz? – flynfish
Benim için, basit_form_for ("Kullanıcı", ... "ile" simple_form_for ("kullanıcı") arasındaki değişiklik…. – mirelon
Sayfadaki iki formları olmalıdır - kaydolma diğeri kayıt için bir tane. Tek bir form ve birden fazla potansiyel eylem istiyorsanız, istemci tarafını ele alan ve bir kullanıcı veya oturum oluşturmak istediğinize bağlı olarak formun eylemini & yöntemini uygun rotaya geçiren birkaç düğüme gereksinim duyacaksınız.
Bunu daha önce yaptığınızı düşünüyorsanız, sorun kodunuzda yatar. Bizimle paylaşacak olsaydınız belki de gözden kaçırmış olabileceğiniz bir şeye işaret edebiliriz.
Her iki form için de doğrulama hatalarını görme sorunu 2 şeyden kaynaklanıyor. İlk olarak, formlar, genel bir 'kaynak' yardımcısı kullanırlar. Bu bir Kullanıcı nesnesi oluşturur ve aynı kullanıcı objesi hem kayıt hem de formdaki imza için kullanılır. İkincisi, düzenleme hataları genellikle 'devise_error_messages!' Kullanılarak görüntülenir. Aynı paylaşılan kaynağı kullanan yardımcı.
Aynı sayfada oturum açmak ve kayıt olmak için her form için farklı kullanıcı nesneleri oluşturmanız ve hata mesajlarını görüntülemenin yeni bir yolu olmanız gerekir.
Öncelikle, (/ app/kontrolörleri/kullanıcılarda) Kendi kayıt denetleyicisi oluşturmak için
class Users::RegistrationsController < Devise::RegistrationsController
include DevisePermittedParameters
protected
def build_resource(hash=nil)
super
# Create an instance var to use just for the sign up form
@sign_up_user = self.resource
end
end
ihtiyaç Ve güzergahlar olacak buna göre
devise_for :users, controllers: {
registrations: 'users/registrations'
}
İleri dosyasını güncelleyeceğiz kendi hata mesajlarına ve kaynak yardımcılarına ihtiyacınız var. şöyle formlarınızı sizin görünümlerinde, Nihayet
module DeviseSinglePageHelper
def devise_error_messages_for_same_page(given_resource)
return "" if given_resource.errors.empty?
messages = given_resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
sentence = I18n.t("errors.messages.not_saved",
count: given_resource.errors.count,
resource: given_resource.class.model_name.human.downcase)
html = <<-HTML
<div id="error_explanation">
<h2>#{sentence}</h2>
<ul>#{messages}</ul>
</div>
HTML
html.html_safe
end
def sign_up_user
@sign_up_user ||= User.new(username: 'su')
end
def sign_in_user
@sign_in_user ||= User.new(username: 'si')
end
end
, güncellemek: devise_single_page_helper.rb gibi yeni bir yardımcı oluşturun ve aşağıdakileri ekleyin
-# The sign up form
= simple_form_for(sign_up_user, url: registration_path(resource_name)) do |f|
-#...
= devise_error_messages_for_same_page(sign_up_user)
-# The sign in form
= simple_form_for(sign_in_user, url: sessions_path(resource_name)) do |f|
#...
= devise_error_messages_for_same_page(sign_in_user)
Bütün bunlar bir araya size 2 farklı nesneleri verir - 1 Kayıt için 1 ve oturum açmak için 1. Bu, hata mesajlarının diğerinde gösterilmesini engelleyecektir.Her iki formun da sayfadaki (ve muhtemelen varsayılan kayıt sayfası sayfanın giriş sayfasına yönlendirilmesi) formları doldurmanızı öneriyoruz çünkü varsayılan olarak başarısız bir giriş denemesi, sayfaya giriş sayfasına yönlendirilecektir.
- 1. Raylar Özel Kayıt ve Giriş'i aynı sayfadaki sorunlar hakkında bilgilendirin
- 2. Aynı sayfadaki Çoklu Formlar ASP.net MVC
- 3. Devise Özel giriş formu
- 4. Kayıt ve Giriş Realm Kullanarak
- 5. Android Giriş ve Kayıt Ol
- 6. Magento giriş ve kayıt formu bir sayfa
- 7. devise: Kayıt olduktan sonra uyarı ekleme (onayla)
- 8. javascript'te sayfadaki giriş değeri değişikliği kaynağını bul
- 9. Rails devise gem ve modal pencereler
- 10. SSL giriş ve JSONP üzerinden kayıt
- 11. woocommerce: ayrı giriş sayfası ve kayıt sayfası
- 12. Laravel Socialite Google Kayıt ve Giriş
- 13. Simple Amazon Cognito Kayıt ve Giriş
- 14. Aynı Kullanıcı modeli için Devise ve ActiveAdmin'i nasıl kullanırım?
- 15. Rails ile aynı sayfadaki Çoklu Formlar
- 16. Aynı sayfadaki çoklu görünümler MVC ASP.NET
- 17. Yii2 bir sayfadaki çok captcha
- 18. Devise
- 19. Devise ile giriş yap - Bağlantıda bağlantıyı tıkladığınızda giriş yapın
- 20. facebook kayıt/düzenli giriş web sitesinde kayıt nasıl entegre edilir?
- 21. Django - Ajax modal giriş/kayıt
- 22. PFFacebookUtils. Giriş ve kayıt arasındaki fark nasıl yapılır?
- 23. node.js ve mongodb kayıt ve giriş formu oluşturma
- 24. devise ve STI kayıt sırasında Base sınıfı olarak nasıl oturum açılacağı
- 25. Devise ve Rails 4
- 26. Raylardaki bir tablodan üst kayıt ile aynı kimlikle kayıt oluşturma
- 27. Kompozit C1 - Üyelik Sağlayıcı - Basit Kayıt ve Giriş
- 28. C# Kayıt formu önce admin ilk giriş
- 29. FOSUserBundle ile aynı sayfada oturum açın ve kayıt olun
- 30. Standart ve hata çıktısının aynı kayıt dosyasına eklenmesi Yönlendirme
İlgili görünümleri/denetleyicileri kodu gösterebilir misiniz? Bu dava hakkında –
[Cevabımı buradan kontrol edin] (http://stackoverflow.com/a/17001874/1297435). –