Ruby on rails 以用户身份登录,从ActionMailer呈现视图
我想通过电子邮件向用户发送作为特定用户登录的特定控制器操作的呈现html。不确定如何使用会话信息完全从控制器操作呈现电子邮件html。在后台任务中执行此操作会延迟作业。有没有办法在ActionMailer中呈现任意控制器操作?我会在您创建的后台任务中添加一些元数据,可以是延迟的作业,也可以是在控制器中保存当前用户id的resque 特别是在延迟作业中,您可以使用自定义作业:任何具有perform方法的对象都可以是作业。因此,创建一个MailerJob类,并在控制器中执行m=MailerJob.new并添加当前用户的id。在perform方法中,您可以为该用户查找并获取您需要的任何内容Ruby on rails 以用户身份登录,从ActionMailer呈现视图,ruby-on-rails,actionmailer,delayed-job,Ruby On Rails,Actionmailer,Delayed Job,我想通过电子邮件向用户发送作为特定用户登录的特定控制器操作的呈现html。不确定如何使用会话信息完全从控制器操作呈现电子邮件html。在后台任务中执行此操作会延迟作业。有没有办法在ActionMailer中呈现任意控制器操作?我会在您创建的后台任务中添加一些元数据,可以是延迟的作业,也可以是在控制器中保存当前用户id的resque 特别是在延迟作业中,您可以使用自定义作业:任何具有perform方法的对象都可以是作业。因此,创建一个MailerJob类,并在控制器中执行m=MailerJob.n
重要的是,您只需将用户id放入MailerJob类中,因为ActiveRecord对象通常不会很好地序列化所有对象,或者在过去的某一点上没有很好地序列化。在这种情况下,您可能不需要使用后台工作程序。如果使用会话,则可以利用用户的会话访问该对象数据 我通常在应用程序控制器文件中写下:
def set_current_user
if session[:user_id]
@current_user = User.find(session[:user_id])
end
end
def require_current_user
set_current_user
redirect_to root_path unless @current_user
end
根据您想要实际使用邮件程序的控制器,您只需传递@current\u user对象,然后根据该对象传入自定义HTML。传递id不是问题。我需要以延迟的_作业中的用户身份登录,并从MailerJob中呈现特定的控制器/操作。我基本上需要Ruby类MailerJob