問題タブ [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.

0 投票する
1 に答える
799 参照

ruby-on-rails - Rails でのオートロード時のトップ レベル定数との名前の衝突

のクラスと の別のクラスDogがあります。app/models/dog.rbServices::My::Deeply::Nested::Dogapp/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 ソリューションが何であるかを調べたいと思います。

よろしくお願いします。

0 投票する
1 に答える
131 参照

python - メインプログラムで実行するオプションをクリックする前に、新しいトップレベルウィンドウが表示されます。

メニューバーのオプションをクリックすると、クリックすると新しいウィンドウが表示されると想定されています。ただし、メニューのオプションをクリックする前に、メインプログラムの実行が開始されるとすぐに新しいウィンドウが表示されます。

メインプログラムの実行開始直後ではなく、オプションをクリックしたときにのみウィンドウが表示されるようにするにはどうすればよいですか?