パルカワ2

PerlとRubyとイチャラブ

Railsアプリで新しくmodelを作ったら読み込まれなかった。

module Hoge::Error
  UNKO = "うんこ"
end

みたいなの作ってみたけど、UNKOが見つからないと言われて???ってなった。

Loading development environment (Rails 4.2.3)

# ないと言われる
[1] pry(main)> Hoge::Error::UNKO
NameError: uninitialized constant Hoge::Error::UNKO
from (pry):1:in `<main>'

# そもそも定数がないと言われてた。
[2] pry(main)> Hoge::Error.constants
=> []

# なんかclassになってるやん
[3] pry(main)> Hoge::Error.class
=> Class

module Hoge::Errorしたはずなのに、Classになってるのでどこかでclass Hoge::Errorが定義されていて、既にHoge::Errorがあるのでapp/model/hoge/error.rbを読み込んでないのでは?ってなった。のでgrepしてみたらあった。

 $ ag "class Error"
app/models/hoge.rb
2:  class Error < StandardError; end

なので、名前かえた。