4
text_field (선택 사항)를 추가하여 초대 이메일에 선택적 메시지를 추가하고 싶습니다. 따라서 메시지에 아무것도 입력하지 않으면 invitation_instructions.html.erb의 표준 메시지는 text_field 메시지를 보내야합니다.Invise 선택적 맞춤 메시지
어떻게해야합니까?
text_field (선택 사항)를 추가하여 초대 이메일에 선택적 메시지를 추가하고 싶습니다. 따라서 메시지에 아무것도 입력하지 않으면 invitation_instructions.html.erb의 표준 메시지는 text_field 메시지를 보내야합니다.Invise 선택적 맞춤 메시지
어떻게해야합니까?
이 작업을 수행하려면 이메일을 보내지 말고 직접 우편물을 사용할 수 있습니다. 여기
그것을 수행하는 방법입니다 :
이class User < ActiveRecord::Base
attr_reader :raw_invitation_token
end
class InvitationsController < Devise::InvitationsController
def create
@from = params[:from]
@subject = params[:invite_subject]
@content = params[:invite_content]
@user = User.invite!(params[:user], current_user) do |u|
u.skip_invitation = true
end
@user.deliver_invitation
email = NotificationMailer.invite_message(@user, @from, @subject, @content)
end
end
class NotificationMailer < ActionMailer::Base
def invite_message(user, venue, from, subject, content)
@user = user
@token = user.raw_invitation_token
invitation_link = accept_user_invitation_url(:invitation_token => @token)
mail(:from => from, :bcc => from, :to => @user.email, :subject => subject) do |format|
content = content.gsub '{{first_name}}', user.first_name
content = content.gsub '{{last_name}}', user.first_name
content = content.gsub '{{full_name}}', user.full_name
content = content.gsub('{{invitation_link}}', invitation_link)
format.text do
render :text => content
end
end
end
end
raw_invitation_token
은 (유증> = 3.1과 호환) devise_invitable의 최신 버전에 존재합니다.
우리는 본질적으로 모든 장치와 초대장 프로세스를 모두 건너 뛰고 우리 자신의 우편물을 사용하고 있습니다. Google은 콘텐츠를 매개 변수로 사용하여 이메일 본문으로 전송합니다. 자리 표시자를 실제 값으로 대체하기까지합니다.
이 솔루션을 사용하면 원하는 모든 이메일에 유연성을 줄 수 있습니다. 원하는 경우 추적 픽셀을 추가 할 수도 있습니다.
3 일 후에 동일한 링크로 맞춤 초대 알림을 보내고 싶습니다. 이전의 devise 3.1 버전에서는 문제가 전혀 없었습니다. 그러나 지금까지 보았을 때, 이제는 새로운 토큰과 알림 링크를 생성하거나 (나중에는 원하지 않는) 새로운 토큰을 생성하거나 나중에 사용할 수 있도록 raw_invitation_token을 저장해야합니다 (새 토큰 시스템에 대한 전체적인 생각을 무시 함).). 이 딜레마를 해결하는 방법에 대한 아이디어가 있습니까? – wdspkr