您好我一直在开发简单的学校项目,因为如果学生的注册完成,我希望将邮件发送到初始条目。
我有桌子
分配
*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
这是对的吗?那会发邮件吗?
答案 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 是一个合适的数组..他是他......开玩笑!