2012-11-21 10 views
5

Devise kurulumunu ve harika çalışmasını sağlarım. Ben confirmable kullanıyorum ve 2 adımlı kayıt işlemi kılavuz uyarınca bu değiştirdiniz:Güncel_kullanıcıya nasıl geçileceğine dikkat edin mailler

set password at confirmation

Ben hiçbir zaman bu sorun yaşıyorum son bir gereksinim var.

Ne var 2 senaryo ) Bir kullanıcı yeni bir kullanıcı oluşturabilir kullanıcı (örnein oturum olarak yeni

2) A) kayıt olabilirsiniz olduğunu. Oturum açmış bir kullanıcı yeni bir kullanıcı oluşturduğunda e-postalarını yeni oluşturulan kullanıcıya gönderilen onay e-postasına ekleyebilmek istiyorum

Yeni kayıtlı kullanıcıya gönderilen e-postada current_user.email dosyasında geçmem gerekiyor Her nasılsa kullanıcı oturum açmış bir kullanıcı tarafından oluşturulmuşsa. Daha sonra kontrol edip e-postaya bazı ek metinler ekleyeceğim. Şu anda

confirmation_instructions.html.erb:

<p>Welcome <%= @resource.email %>!</p> 

<p>You can confirm your account email through the link below:</p> 

<p><%= link_to 'Confirm account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p> 

Benim ihtiyacım hiçbir sevinçle özel mailler ile ileri geri gidiş edilmiş

<p>Welcome <%= @resource.email %>!</p> 

<% if [email protected]? %> 
    <p> some additional welcome text here from <%= @user.email %> </p> 
<% end %> 

<p>You can confirm your account email through the link below:</p> 

<p><%= link_to 'Confirm account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p> 

gibi bir şeydir. Birisi bana yardımcı olabilir, eminim ki burada eksik bir şey var.

Bilgi için (bunun en iyi yöntem olmadığını biliyorum ama demo amaçlı olarak çok hızlı bir uygulama hazırlıyoruz) bir kullanıcı, e-posta adresini yazarak yeni bir kişi oluşturur. Özel bir mailler kurmak için

class DashboardController < ApplicationController 
    before_filter :authenticate_user! 

    def show 
    @contacts = current_user.contacts 
    end 

    def createcontact 
    user2 = User.find_by_email(params[:contact_email]) 
    if user2.nil? 
      newContact = User.create(:email => params[:contact_email]) 
      if newContact.save 
       current_user.newUserContact(newContact) 
       redirect_to dashboard_path, :notice => "conact has been saved as well as a new contact" 
      else 
       redirect_to dashboard_path, :notice => "ERROR saving contact" 
      end 
    else 
     . 
     . 
     . 
     . 

cevap

4

Follow this tutorial: E-posta adresi yeni bir kullanıcı daha sonra oluşturulan kullanıcı tablosunda yoksa kontak ilişkisi (kontrolörün pasajı) oluşturuldu. Şimdi

# user_mailer.rb 
class UserMailer < Devise::Mailer 

    def invite(sender, recipient) 
    @sender = sender 
    @recipient = recipient 

    mail(:to => recipient.email, 
      :subject => "Invite by #{sender.name}" 
     ) 
    end 
end 

sizin vasiyetle mailler görünümlerini taşımak:

config.mailer = "UserMailer". 

klasör uygulaması/postaları hazırlamak en postasının devraldığı yeni bir posta oluşturun: config/başlatıcıları/devise.rb olarak

klasör uygulaması/görünümleri/user_mailer. @sender ve @recipient değişkenlerini kullanabileceğiniz yeni bir e-posta görünümü oluşturun.

# invite.html.erb 
<p>Welcome <%= @recipient.email %>!</p> 

<% if @sender.email? %> 
    <p> some additional welcome text here from <%= @sender.email %> </p> 
<% end %> 

Şimdi, denetleyicisi, aşağıdaki çağırabilirsiniz:

UserMailer.invite(current_user, newContact).deliver 
+0

teşekkürler cevap için. Sahip olduğumuz 2 senaryo 1) bir kullanıcı yeni olarak kayıt olabilir 2) başka bir kullanıcı (current_user) yeni bir kullanıcı oluşturabilir. Giriş yapan bir kullanıcı yeni bir kullanıcı oluşturduğunda, e-postalarını yeni kullanıcıya gönderilen onay e-postasına ekleyebilmek istiyorum. – vlwills

+0

Sorduğum soruların karışıklığını gidermek için soruyu düzenledim – vlwills

+0

Oturum açmış bir kullanıcı nasıl yeni bir kullanıcı oluşturuyor? Bu kontrolör kodunu sağlayabilir misin? – Ashitaka

İlgili konular