开发者

returning an array of objects in rails

开发者 https://www.devze.com 2023-01-30 04:32 出处:网络
I need to pass an array of mailobjects from my rails mailer class to the co开发者_StackOverflowrresponding controller which i thought should work if i just do

I need to pass an array of mailobjects from my rails mailer class to the co开发者_StackOverflowrresponding controller which i thought should work if i just do

class foo < Actionmailer::Base

    def bar(...)
        mails_array = Array.new
        return mails_array
    end

but as the controller gets mails_array via

@mails = Array.new
@mails.concat(foo.bar(...))

i get a:

TypeError in mailsController#index

can't convert Mail::Message into Array

did i miss something?? I would expect to have the mails_array in mails and can't understand why it is not.


You are calling foo.bar, but bar is defined as instance method, not class method. Try

class foo < Actionmailer::Base      

    def self.bar(...)
        mails_array = Array.new
        return mails_array
    end

instead.


Array#concat expects the argument to be an array but you're passing a Mail::Message. Try the following:

@mails << foo.bar(...)

or

@mails.push(foo.bar(...))
0

精彩评论

暂无评论...
验证码 换一张
取 消