irbで次のことを行うと、次の出力が得られます。
>> class TestMe
>> def new
>> puts 'hi!'
>> end
>> end
=> nil
>> TestMe.new.new
hi!
さらに:
>> class TestMe
>> end
=> nil
>> TestMe.new.new
NoMethodError: undefined method `new' for #<TestMe:0x00000101038750>
しかし、選択したテキストエディタで、という名前のインスタンスメソッドを呼び出すコードを記述している場合new(ただし、新しいオブジェクトをインスタンス化するObjectメソッドではありません) 、予約済みのキーワードであるかのように強調表示されます。newnew
@page = current_user.locations.new
ここlocationsでは、(このメソッドを介してnew)手間のかかる作業を行い、最終的にはLocation.new基本的なセットアップデータの準備ができているインスタンスを返しますが、newそれ自体はクラスオブジェクトで呼び出されていないデリゲータークラスを返します。これはメソッド名の許容できる使用法ですか、それとも問題が発生しますか?