Rails 4向其他用户发送电子邮件

射线

我正在尝试创建一个表单,使用户能够将电子邮件发送给其他用户。当用户单击“ link_to”电子邮件时,他们将被发送到联系表,他们可以在此相互联系。一切正常,除非我不知道如何在user_mailer.rb中动态设置“默认为”。

我希望用户能够将其发送到他们单击的任何电子邮件链接。那么,如何使方法默认为动态方法呢?

user.html.erb

<% if user.email.present? %>
    <b>Email:</b>
     <%= link_to "email", contact_path %>
<% end %>

user_mailer.rb

class UserMailer < ActionMailer::Base
  default to: #user email

  def contact_email(name, email, body)
      @name = name
      @email = email
      @body = body

      mail(from: email, subject: '')
  end
end

contact.html.erb

<div class="container-content">
    <div class="container">
        <%= form_tag(send_mail_path) do %>
            <div class="form-group">
                <%= label_tag 'name', 'Name' %>
                <%= text_field_tag 'name', nil, class: 'form-control', placeholder: 'Your Name' %>
            </div>
           <div class="form-group">
               <%= label_tag 'email', 'Email' %>
               <%= email_field_tag 'email', nil, class: 'form-control', placeholder: 'Your Email Address' %>
           </div>
           <div class="form-group">
               <%= label_tag 'comments', 'Comments' %>
               <%= text_area_tag 'comments', nil, class: 'form-control', rows: 4, placeholder: 'Comments...' %>
           </div>
           <%= submit_tag nil, class: 'btn btn-default btn-about pull-right' %>
       <% end %>
  </div>
</div>

user_controller.rb

 def send_mail
    name = params[:name]
    email = params[:email]
    body = params[:comments]
    UserMailer.contact_email(name, email, body).deliver_now
    redirect_to contact_path, notice: 'Message sent'
  end
帕万

default to:当收件者电子邮件针对不同用户更改时(即它们是动态的),我看不到一种设置值的方法如果我没记错的话,它的值default to:应该是静态的。

我希望用户能够将其发送到他们单击的任何电子邮件链接

而是将您的代码更改为下面

<% if user.email.present? %>
  <b>Email:</b>
  <%= link_to "email", contact_path(to_email: user.email) %> #pass an extra parameter
<% end %>

然后在中form,创建一个如下所示隐藏字段

<%= hidden_field_tag 'to_email', params[:to_email] %>

因此,现在您可以像params[:to_email]在控制器操作中一样对其进行访问

def send_mail
  name = params[:name]
  email = params[:email]
  body = params[:comments]
  to_email = params[:to_email]
  #pass to_email as argument to this method
  UserMailer.contact_email(name, email, body, to_email).deliver_now
  redirect_to contact_path, notice: 'Message sent'
end

最后,邮递员方法将如下所示

class UserMailer < ActionMailer::Base

  def contact_email(name, email, body, to_email)
    @name = name
    @email = email
    @body = body

    mail(from: email, subject: '', to: to_email)
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Sidekiq和Rails 4 Actionmailer从不发送电子邮件

来自分类Dev

在Rails中发送电子邮件后存储邮件程序类和方法

来自分类Dev

Rails 4 Mailer不发送电子邮件

来自分类Dev

Rails-单击按钮发送电子邮件

来自分类Dev

Rails 4,不使用sendmail发送电子邮件

来自分类Dev

在Rails中使用发送网格批量发送电子邮件

来自分类Dev

在devise中将其他用户编辑为admin,ruby on rails

来自分类Dev

使用2封电子邮件和凭据在Rails中发送电子邮件

来自分类Dev

Rails:用户has_many:建议:通过其他用户

来自分类Dev

动作邮件程序-使用Ruby on Rails通过联系表单发送电子邮件

来自分类Dev

如何向有权查看帖子的用户发送电子邮件-多态关联Ruby-on-Rails

来自分类Dev

Rails Google Oauth-适用于某些用户,而非其他用户

来自分类Dev

仅在产品中发送电子邮件,而在Rails开发中则不发送

来自分类Dev

使用宏通过电子邮件发送文档,并抄送其他用户

来自分类Dev

Rails通过GET发送电子邮件

来自分类Dev

在Heroku上使用Rails4发送电子邮件

来自分类Dev

Rails应用程序不发送电子邮件

来自分类Dev

在概念验证Rails应用中发送电子邮件

来自分类Dev

在Rails中使用发送网格批量发送电子邮件

来自分类Dev

作为其他用户发送电子邮件

来自分类Dev

使用Shoppe gem + Rails发送电子邮件

来自分类Dev

如果用Rails ActionMailer清空电子邮件,如何不发送电子邮件

来自分类Dev

Rails:如何为与其他用户有很多约会的用户建模

来自分类Dev

一旦他们在Rails应用程序中注册,就向用户发送电子邮件列表

来自分类Dev

Rails:为什么在用户提交表单之前先发送电子邮件?

来自分类Dev

Rails 联系表不发送电子邮件

来自分类Dev

Rails 重新发送电子邮件激活

来自分类Dev

Rails 测试根据请求规范发送电子邮件

来自分类Dev

Rails 通过弹出窗口发送电子邮件

Related 相关文章

  1. 1

    Sidekiq和Rails 4 Actionmailer从不发送电子邮件

  2. 2

    在Rails中发送电子邮件后存储邮件程序类和方法

  3. 3

    Rails 4 Mailer不发送电子邮件

  4. 4

    Rails-单击按钮发送电子邮件

  5. 5

    Rails 4,不使用sendmail发送电子邮件

  6. 6

    在Rails中使用发送网格批量发送电子邮件

  7. 7

    在devise中将其他用户编辑为admin,ruby on rails

  8. 8

    使用2封电子邮件和凭据在Rails中发送电子邮件

  9. 9

    Rails:用户has_many:建议:通过其他用户

  10. 10

    动作邮件程序-使用Ruby on Rails通过联系表单发送电子邮件

  11. 11

    如何向有权查看帖子的用户发送电子邮件-多态关联Ruby-on-Rails

  12. 12

    Rails Google Oauth-适用于某些用户,而非其他用户

  13. 13

    仅在产品中发送电子邮件,而在Rails开发中则不发送

  14. 14

    使用宏通过电子邮件发送文档,并抄送其他用户

  15. 15

    Rails通过GET发送电子邮件

  16. 16

    在Heroku上使用Rails4发送电子邮件

  17. 17

    Rails应用程序不发送电子邮件

  18. 18

    在概念验证Rails应用中发送电子邮件

  19. 19

    在Rails中使用发送网格批量发送电子邮件

  20. 20

    作为其他用户发送电子邮件

  21. 21

    使用Shoppe gem + Rails发送电子邮件

  22. 22

    如果用Rails ActionMailer清空电子邮件,如何不发送电子邮件

  23. 23

    Rails:如何为与其他用户有很多约会的用户建模

  24. 24

    一旦他们在Rails应用程序中注册,就向用户发送电子邮件列表

  25. 25

    Rails:为什么在用户提交表单之前先发送电子邮件?

  26. 26

    Rails 联系表不发送电子邮件

  27. 27

    Rails 重新发送电子邮件激活

  28. 28

    Rails 测试根据请求规范发送电子邮件

  29. 29

    Rails 通过弹出窗口发送电子邮件

热门标签

归档