2012-11-21 5 views
5

저는 Devise를 설정하고 큰 작업을했습니다. 내가위한 확 사용하고 자신의 2 단계 등록 절차 가이드에 따라이 문제를 수정했습니다 :confirm_instructions 메일러에 current_user를 전달하는 방법을 고안합니다.

set password at confirmation

가 나는 데 문제가 있어요 마지막 요구 사항을 가지고있다.

는 우리가해야하는 것은이 시나리오

1

) 사용자가 새 사용자를 만들 수있는 사용자 (CURRENT_USER 로그인 새로운

2))을 등록 할 수 있습니다. A는 로그인 한 사용자 내가이 current_user.email에 전달해야 새로운 등록 된 사용자에게 전자 메일에서 새로운 생성 된 사용자

로 전송 확인 메일에 자신의 이메일을 추가 할 수 있도록 새로운 사용자를 만듭니다 어쨌든 사용자가 로그인 한 사용자에 의해 생성 된 경우 어떻게 든 간단하게 확인하고 이메일에 추가 텍스트를 추가합니다. 현재

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> 

내가 필요한 것은 내가 더 기쁨으로 사용자 정의 메일러와 함께 앞뒤로 계속되고있다

<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> 

같은 것입니다. 누군가 나를 도울 수 있습니까? 나는 여기서 누락 된 단순한 것이 있다고 확신합니다.

info (저는 이것이 최선의 방법은 아니지만 데모 목적으로 매우 빠른 응용 프로그램을 함께 사용하고 있음을 알고 있습니다) 사용자는 전자 메일 주소를 입력하여 새 연락처를 만듭니다. 사용자 정의 메일러를 설정하는

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 
     . 
     . 
     . 
     . 

답변

4

Follow this tutorial : 이메일 주소가 새 사용자가 다음 생성 된 사용자 테이블에 존재하지 않는 경우 접촉 관계 (컨트롤러의 조각을) 만들었습니다. 지금

# 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 

당신의 유증 메일러보기를 이동 :

config.mailer = "UserMailer". 

폴더 응용 프로그램/우편물에 고안의 메일러에서 상속 새로운 우편물 만들기 : 설정/초기화/devise.rb에서

app/views/user_mailer 폴더로 이동합니다. @sender와 @recipient 변수를 사용할 수있는 새로운 이메일보기가 생성됩니다.

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

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

이제 컨트롤러에서 다음을 호출 할 수 있습니다 :

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

감사 회신을 위해. 우리가 가진 것은 2 가지 시나리오입니다. 1) 사용자는 새로운 것으로 등록 할 수 있습니다. 2) 다른 사용자 (current_user)가 새 사용자를 만들 수 있습니다. 로그인 한 사용자가 새 사용자를 만들면 새 사용자에게 보낸 확인 전자 메일에 전자 메일을 추가 할 수 있기를 원합니다. – vlwills

+0

질문 한 내용의 혼란을 해결하기 위해 질문을 편집했습니다. – vlwills

+0

로그인 한 사용자가 새 사용자를 만드는 방법은 무엇입니까? 해당 컨트롤러 코드를 제공 할 수 있습니까? – Ashitaka

관련 문제