如何在rails中邮寄到一堆邮件id

时间:2014-07-23 06:13:34

标签: ruby-on-rails email

您好我一直在开发简单的学校项目,因为如果学生的注册完成,我希望将邮件发送到初始条目。

我有桌子

分配

*section_id
*user_id

用户

*user_id
*email

注册控制器

def update
unless params[:students] && params[:section_id] && !params[:is_academic].nil?
  send_back GlobalUtils.false_response_hash and return
end

section = Section.find( params[:section_id] )
Mailers.mark_entry_notification(section).deliver
send_back( response_hash, :scope_3 )
end


mailers.rb

def mark_entry_notification(section)  
section_id = section.id
array_user_id=[]
Allotment.each do |allot|
  array_user_id << allot.user_id.where(allot.section_id = section_id)
end
array_user_mail=[]
User.each do |usr|
  array_user_mail << usr.user_email.where(usr.user_id = array_user_id)
end
mail(:to => "array_user_mail" :subject => student enrollment is completed  )
end

这是对的吗?那会发邮件吗?

2 个答案:

答案 0 :(得分:1)

我希望这是你所期望的:

在注册控制器中,

def update
    unless params[:students] && params[:section_id] && !params[:is_academic].nil?
      send_back GlobalUtils.false_response_hash and return
    end

    Mailers.mark_entry_notification(params[:section_id]).deliver
    send_back( response_hash, :scope_3 )
end
mailers.rb中的

def mark_entry_notification(section_id)  
    array_user_ids = array_user_emails = [] 
    array_user_ids = Allotment.where(:section_id=>section_id).pluck(:user_id)   
    array_user_emails = User.where(:id=>array_user_ids).pluck(:user_email)
    mail(:to => array_user_emails, :subject => "Student enrollment is completed" )
end

希望这会对你有所帮助。

谢谢!

答案 1 :(得分:0)

mail(:to =&gt; array_user_mail :subject =&gt;学生注册完成)

记下粗体文字。不需要为ruby变量使用引号。您可以通过这种方式向多个用户发送邮件。

我想知道你为什么要编写这么多行代码来获取用户模型的电子邮件ID。

array_user_mail = User.pluck(:user_email)

如果您使用较低版本的rails,请尝试以下

array_user_mail = User.map(&:user_email)

此外,您确定以下代码适用于您的应用程序吗?

 array_user_id << allot.user_id.where(allot.section_id = section_id)

您正在尝试使用table属性的where条件。这是不可能的。?

好的,无论如何回答你的实际问题&#34;使用 array_user_mail 不带引号:to&#34;

假设 array_user_mail 是一个合适的数组..他是他......开玩笑!