Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 以后使用deliver\u时无法在mailer中访问属性访问器_Ruby On Rails_Ruby On Rails 4_Actionmailer_Devise Invitable - Fatal编程技术网

Ruby on rails 以后使用deliver\u时无法在mailer中访问属性访问器

Ruby on rails 以后使用deliver\u时无法在mailer中访问属性访问器,ruby-on-rails,ruby-on-rails-4,actionmailer,devise-invitable,Ruby On Rails,Ruby On Rails 4,Actionmailer,Devise Invitable,我正在使用Desive_invitable邀请用户访问应用程序,因为我想在电子邮件中添加自定义消息。我的代码是这样的 #user.rb attr_accessor :message def self.invite(emails, message) User.invite!({email: email}) do |user| user.message = message end end #here I am overriding devise_invitable method

我正在使用Desive_invitable邀请用户访问应用程序,因为我想在电子邮件中添加自定义消息。我的代码是这样的

#user.rb
attr_accessor :message

def self.invite(emails, message)
  User.invite!({email: email}) do |user|
    user.message = message
  end
end

#here I am overriding devise_invitable method to send mails later
def send_devise_notification(notification, *args)
  devise_mailer.send(notification, self, *args).deliver_later
end

#users_controller.rb
def invite_user
  User.invite(params[:email], params[:message]) 
end    

#invitation_instructions.html.erb
<% if @resource.message %>
  <p><%= @resource.message %></p>
<% end %>    
#user.rb
属性存取器:消息
def自我邀请(电子邮件、消息)
User.invite!({email:email})do | user|
user.message=消息
结束
结束
#在这里,我将覆盖designe_invitable方法,以便稍后发送邮件
def发送设备通知(通知,*args)
设计邮件。发送(通知、自我、*args)。稍后发送
结束
#用户\u controller.rb
def invite_用户
User.invite(参数[:email],参数[:message])
结束
#邀请函_instructions.html.erb


当我仅使用deliver时,邮件将显示在邮件器上,但当我在邮件器视图上使用deliver\u later attr\u accessor时,邮件将显示在nil中

attr\u访问器
不起作用,因为
deliver\u later
将用户对象序列化为。当传递作业运行时,作业进程将从数据库重新加载用户(当然,数据库不包括对象上的任何实例变量)。您可能需要将消息传递给作业(可能您可以将其偷偷地放入
*args
,(手动