teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補記

2017/02/26 08:49

投稿

maisumakun
maisumakun

スコア146676

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  `gets.each`以下はクラス内に直接書いてあるので、`@obj`は**クラスインスタンス変数**を指してしまい、インスタンス変数を読んではくれません。
2
2
 
3
- そもそも、「インスタンス変数でクラスのメソッドを変えてしまう」という構造自体、本質的におかしい気がしますので、`@obj`をクラスインスタンス変数にしてしまいましょう(それか、インスタンスの特異メソッドにするかのどちらかが自然です)。
3
+ そもそも、「インスタンス変数でクラスのメソッドを変えてしまう」という構造自体、本質的におかしい気がしますので、`@obj`をクラスインスタンス変数にしてしまいましょう(それか、生成されるメソッドをインスタンスの特異メソッドにするかのどちらかが自然です)。
4
4
 
5
5
  なお、`gets`は[カーネルメソッドです](https://docs.ruby-lang.org/ja/latest/method/Kernel/m/gets.html)ので、ローカル変数の名前に使うことはおすすめできません。