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
メソッドではありません) 、予約済みのキーワードであるかのように強調表示されます。new
new
@page = current_user.locations.new
ここlocations
では、(このメソッドを介してnew
)手間のかかる作業を行い、最終的にはLocation.new
基本的なセットアップデータの準備ができているインスタンスを返しますが、new
それ自体はクラスオブジェクトで呼び出されていないデリゲータークラスを返します。これはメソッド名の許容できる使用法ですか、それとも問題が発生しますか?