/ / Ruby on Railsクラス - ruby​​、クラス、ruby-on-rails-4

Ruby on Railsクラス - ruby​​、class、ruby-on-rails-4

そのクラスの新しいオブジェクトが作成されると、RoRのクラスは自動的に最初のメソッドを開始しますか?

class User
attr_accessor :name, :email

def initialize(attributes = {})
@name  = attributes[:name]
@email = attributes[:email]
end

def formatted_email
"#{@name} <#{@email}>"
end
end

このような新しいユーザーを作成したとします。

connor = User.new(name: "Connor B", email: "CB@example.com")

最初の方法を自動的に開始することはどのようにしてわかりますが、2番目の方法は呼び出されたときにのみ機能しますか?

回答:

回答№1は5

それは自動的に呼ばれる最初のメソッドではありません、それはそれです new コール initializeこれは、たいていのコードでは最初のメソッドです。しかし、あなたは置くことができます initialize クラス定義内の任意の場所 new それでも initialize 方法。

存在しない場合 initialize メソッドが明示的に定義されている場合はデフォルトのメソッドが呼び出されます。また、これはRubyの動作です。 ない 明確にするために、Ruby on Railsの振る舞い。

ここでは、 関連Q&A あなたが悟りを見つけるかもしれないこと。一番上の答えはもう少し詳細にそれを説明して、そして実際に舞台裏で起こっていることの詳細を掘り下げる例を示します。


回答№2の場合は1

Rubyは自動的に initialize そのクラスの新しいオブジェクトが作成されたときのmethod

new その initialize 方法。

参照