страница активации электронной почты rails добавить адрес электронной почты - PullRequest
0 голосов
/ 30 апреля 2018

Я использовал rails 4.2.2 и ruby ​​2.5.5;

У меня был email_confirm.html.erb, который, когда регистрация пользователя завершена, переходит на эту html-страницу, html-коды выглядят так:

<% provide(:title, 'email activation') %>
<div class="container">
  <div class="col-md-8 col-md-offset-2 col-xs-12 col-sm-12 bgCo pdlr">
   <h3 class="pageItemTitle"><i class="fa fa-envelope text-yellow mr5"></i>email activation</h3>
   <h4 class="pd10 bgCo">Please Activation account:</h4>
   <div class="text-center">
   <span class="text-gray pbt20 ">The email had send to : <span class="text-yellow fs18"><%= current_user.email %></span></span>
 </div>
  <a class="btn btn-default pull-right" href="###">Go to the mailbox to check</a>
 </div>
</div>

user_controller.rb о регистрации так:

def create
@user = User.new(user_params) 
if @user.save
  log_in @user
  flash[:success] = "还差一步就注册成功了!"
  redirect_to :email_confirm
else
  flash.now[:danger] = '注册失败,请输入正确内容!'
  render :new
end

конец

Я хочу получить <%= current_user.email %> соответствующий веб-сайт компании почтового ящика, например as xxx@gmail.com соответствующий mail.google.com, и добавить URL-адрес компании почтового ящика в <a class="btn btn-default pull-right" href="###">Go to the mailbox to check</a>

У меня было полное логическое содержание, такое как:

s = "dafaaf@gmail.com"

tumple = ["mail.qq.com","mail.126.com","mail.163.com","www.yeah.net","mail.sina.com.cn","mail.yahoo.com","mail.sohu.com","mail.aliyun.com","mail.google.com"]
y = s[/([A-Za-z0-9]+)(@)(.*+)/,3]
tumple.each_index do |i|
  if tumple[i].include?y
    print(tumple[i])
  else if y==="gmail.com"
     print("mail.google.com")
       end
   break
  end
end

Но теперь, как я могу добавить этот логический контент на рельсы (или контроллер)?
Пожалуйста, помогите мне, большое спасибо!

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Вы действительно должны изменить свою логику в лучшую рубиновую сторону

def get_mailbox
  email = current_user.email.split('@').last
  tumple = ["mail.qq.com","mail.126.com","mail.163.com","www.yeah.net","mail.sina.com.cn","mail.yahoo.com","mail.sohu.com","mail.aliyun.com","mail.google.com"]

  if email == "gmail.com"
    print "mail.google.com"
  else
    tumple.find { |t| print t if t.include? email }
  end
end
0 голосов
/ 30 апреля 2018

Предположим, у вас есть current_user объект на email_confirm.html.erb странице. В этом объекте вы получили email пользователя. В этом случае вы можете скопировать код почтового ящика в application_helper

в application_helper.rb файл:

def get_mailbox(email)
  email = email.split('@').last
  tumple = ["mail.qq.com","mail.126.com","mail.163.com","www.yeah.net","mail.sina.com.cn","mail.yahoo.com","mail.sohu.com","mail.aliyun.com","mail.google.com"]

  if email == "gmail.com"
    return "mail.google.com"
  else
    tumple.find { |t| return t if t.include? email }
  end
end

Теперь в файле просмотра email_confirm.html.erb

<a class="btn btn-default pull-right" href="<%= get_mailbox(current_user.email) %>">Go to the mailbox to check</a>

Надеюсь, это поможет!

N.B. Я не проверяю вашу логику, также я предположил, что у вас есть объект current_user.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...