問題タブ [toplevel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails でのオートロード時のトップ レベル定数との名前の衝突
のクラスと の別のクラスDog
があります。app/models/dog.rb
Services::My::Deeply::Nested::Dog
app/services/my/deeply/nested/dog.rb
Services::My (app/services/my.rb) では、次のいずれかへの参照があります (動作はすべての状況でまったく同じであるため、区別する必要はありません)。
Deeply::Nested::Dog
Services::My::Deeply::Nested::Dog
::Services::My::Deeply::Nested::Dog
上記のどれを選択しても、常に次のエラー メッセージが表示されます。
services/my.rb: 警告: トップレベルの定数 Dog が参照する
Services::My::Deeply::Nested::Dog
また、私の深くネストされた Dog は、インタープリターに見られることさえありません (プットと構文エラーを使用して、何も起こらないことがわかりました)。
可能な回避策(私はすべて好きではありません)は次のとおりです。
- いずれかの Dog クラスの名前を変更します
- 自動ロードを無効にして代わりに熱心なロードを使用するには、RAILS_ENV=production で実行します。
require_dependency
深く入れ子になった犬を指す
コンピューター科学者として、上記の回避策のどれも満足のいくものではないと思います。私の深くネストされた Dog が回避策なしでは見つからない理由を理解し、この問題に対する最先端の Ruby / Rails ソリューションが何であるかを調べたいと思います。
よろしくお願いします。
python - メインプログラムで実行するオプションをクリックする前に、新しいトップレベルウィンドウが表示されます。
メニューバーのオプションをクリックすると、クリックすると新しいウィンドウが表示されると想定されています。ただし、メニューのオプションをクリックする前に、メインプログラムの実行が開始されるとすぐに新しいウィンドウが表示されます。
メインプログラムの実行開始直後ではなく、オプションをクリックしたときにのみウィンドウが表示されるようにするにはどうすればよいですか?