在方法旁边的块中,format.html是如何工作的?



我不知道mailto是先运行还是先阻塞

mail(:to => @recipients, :subject => @subject, :cc => @cc, :from => @from, :reply_to => @reply_to, :date => @date, :bcc => @bcc) do |format|
          format.text unless options[:no_text]
          format.html
        end

由于块是给定给方法的对象,我想说你的问题的答案是mail在块之前被调用,在被执行的意义上。

如果你看一下mail方法的源代码,你可以看到它有一个block参数。这是实际的块对象(我认为类型Proc),当您输入do...end时,它正在为您创建并传递给您。在第648行,这个块对象被传递给collect_responses_and_parts_order方法。

所以在"首先是什么"的意义上,我不得不说它是块对象,因为它被传递给方法,需要在方法被调用之前创建。

最新更新