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

时间:2013-05-16 11:01:00

标签: ruby-on-rails

我很困惑wheather先运行或阻止

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

1 个答案:

答案 0 :(得分:0)

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

如果您查看source code of the mail method,可以看到它有一个block参数。这是您键入Proc时为您创建并传递的实际块对象(我认为类型do...end)。此外,在第648行,此块对象被传递给collect_responses_and_parts_order方法。

所以在“什么是第一”的含义中,我不得不说它是块对象,因为它被传递给方法,需要在调用方法之前创建。