我最近查看了rails项目中控制器的示例代码,其中包含类中的方法定义,而不定义方法的名称,如下所示:
def begin
redirect_to :action => :buy, :PaymentAction => params[:paymentaction]
rescue Errno::ENOENT => exception
flash[:error] = exception
redirect_to :controller => 'wppro', :action => 'exception'
end
这是在rails中定义构造函数的方法吗?
答案 0 :(得分:4)
在这种情况下,begin
只是方法的名称;它与用于处理异常的begin
... rescue
语法无关(其中begin
有时是可选的)。 foo.begin
也是调用此方法的有效语法。
由于我们在Rails控制器内,begin
还是一个动作的名称。
使用initialize
实例方法定义构造函数。