遭遇したエラー
RailsでWebアプリを作成中マイクロポストの削除機能を実装している最中に以下のようなエラーに遭遇しました。
def destroy
@micropost.destroy
flash[:success] = "投稿が削除されました"
redirect_to request.referrer || root_url
end
@micropostが定義されていないみたいなことが書かれていますが実際はbefore_actionで定義しているので原因が分からずお手上げでした。
teratailやプログラム板で質問
これ以上時間を消耗するのも嫌なのでteratailで質問したところ回答は得られず、たまらず4chのプログラマー板で質問しました。
すると@micropostの前が全角なのが怪しいと教えていただき、そんなん今まで全角でも大丈夫だったしなーと半信半疑で半角に治したところ
きちんと実行されました。
エラー文の正しい解釈
よくよく見返してみればundefined method @micropostではなく undefined method` 'となっているので何かしらの原因でそもそもメソッド自体を読み込めていないという解釈をするべき問題であり、その解決策が全角スペースを使わないというものだったという事象でした。
終わりに
多くの場合は全角スペースにしても動作はするようですが、そもそも日本語くらいでしか使用されない全角スペースをプログラミング言語で利用するのは不適切であり、当然動作しないシチュエーションも存在するということが勉強できたいい機会となりました。