Rails 4.2 で一定の "Complete" を使用する Orderable の問題があります。app/models/concerns/orderable.rb
:
module Orderable
extend ActiveSupport::Concern
COMPLETE = "Complete"
end
Rails コンソールで を実行するOrderable.constants
と、 が返されます[:COMPLETE]
。ただし、Orderable の問題をRailsに関するモジュールで説明されている「控えめな」スタイルに変更すると、次のようになります。
concern :Orderable do
COMPLETE = "Complete"
end
その後Orderable.constants
、Rails コンソールで実行すると が返されます[]
。Railsのドキュメントには、「懸念事項を定義するための簡単な近道は...同等である」と書かれています。この単一の変更が、モジュールの定数へのアクセスを失うという影響を与えるのはなぜですか? どういうわけかそれらを再定義する必要がありますか?