我需要将一个来自我的rails邮件程序类的mailobjects数组传递给相应的控制器,如果我这样做,我认为应该可以使用
class foo < Actionmailer::Base
def bar(...)
mails_array = Array.new
return mails_array
end
但是当控制器通过
获得mails_array
时
@mails = Array.new
@mails.concat(foo.bar(...))
我得到了:
mailsController#index中的TypeError 无法将Mail :: Message转换为数组
我错过了什么吗? 我希望邮件中有mails_array,并且无法理解为什么不是。
答案 0 :(得分:2)
您正在调用foo.bar
,但bar
被定义为实例方法,而不是类方法。尝试
class foo < Actionmailer::Base
def self.bar(...)
mails_array = Array.new
return mails_array
end
代替。
答案 1 :(得分:0)
Array#concat
期望参数为数组,但您传递的是Mail::Message
。请尝试以下方法:
@mails << foo.bar(...)
或
@mails.push(foo.bar(...))