問題タブ [rails-spring]

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 に答える
348 参照

ruby-on-rails - Railsスプリングウィスパーリスナーメソッドキャッシング

Spring が私の wisper リスナー メソッドをキャッシュしていることがわかりました (私は非常に単純なエンジンを書いています)。

例:

アプリ/モデル/myengine/my_class.rb

config/initializers/wisper.rb

アプリ/オブザーバー/myengine/my_observer.rb

Spring の再起動とspring stopは、本当に面倒なコマンドの手動実行を意味します。

さらに不思議なことにanother_method、戻り値を false に変更すると、テストが失敗する可能性がありますが、これは問題ありませんが、after_somethingメソッド本体を変更してテストに影響を与えないと (本体が何らかの形でキャッシュされているなど)。return falseafter_something

この奇妙な動作はリスナーメソッド本体内でのみ表示され、すべてのロジックをクラス内の別のメソッドに移動することで簡単に克服できるため、優先度の高い問題ではありません。とにかく、混乱するかもしれません (特に、正確な問題を知らなかった最初の段階では)。

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

ruby-on-rails - Dockerized Rails 5 RC1 アプリケーションが開発中のコントローラーとモデルの更新を取得しない

Mac OS X + Docker Machine + Docker Compose で Rails 4 アプリを開発した経験はかなりありますが、Rails 5 が開発環境でファイルをキャッシュする方法が変わっています (現在 RC1 でテスト中)。

でアプリケーションを起動するとdocker-compose up、アプリケーションは開発モードで正常に実行されます。

しかし、コントローラーまたはモデルに変更を加えた場合、それをアプリケーションに反映させる唯一の方法は、サーバーを停止して再起動することです。

したがって、コントローラーまたはモデルに変更を加える必要がある場合、ワークフローは次のようになります。

  1. コントローラー/モデル クラスに変更を加えます。
  2. でサーバーを停止しますCtrl + C
  3. でサーバーのバックアップを開始しますdocker-compose up
  4. サーバーが起動するのを待ちます。
  5. ブラウザで実行していたものを実行します。

控えめに言っても、手順 2 ~ 4 を実行する必要があるのは煩わしく、Rails 4 で慣れていることではありません。

さらに一歩進んで、削除手順を使用して Spring をアンインストールしましたが、それでも同じ動作が得られます。

config/environments/development.rbまた、モデル クラスとコントローラー クラスに対する Rails ランタイムの鉄のグリップに関連する設定を検索しましたが、何も見つかりませんでした。(変更を選択的にロードするためにファイルシステムの監視に本当に依存したいと思いますが、Macでの変更からVirtualBoxへの変更から何かが取得されていません。)

私が試すことができる他のアイデアはありますか?または、このより積極的なキャッシングの仕組みに関連する新しい設定はありますか?

0 投票する
0 に答える
192 参照

ruby-on-rails - Rails spring testunit 不正なファイル記述子

Rails 3.2.22/ruby 2.2.5 で spring 1.4.0 を使用しようとしています。

bundle exec spring testunit <test_file.rb>

これを出力します:

/Users/igor/.rbenv/versions/2.2.5/gemsets/<app>/gems/spring-1.4.0/lib/spring/application/boot.rb:7:in 'for_fd': Bad file descriptor - not a socket file descriptor (Errno::EBADF) from /Users/igor/.rbenv/versions/2.2.5/gemsets/<app>/gems/spring-1.4.0/lib/spring/application/boot.rb:7:in '<top (required)>' from -e:1:in 'require' from -e:1:in '<main>'

Spring ソース コードで収集したものから、誤った命令はUNIXSocket.for_fd(3)であり、これは最初に使用可能なファイル ハンドルであるはずですが、なぜ ? としてキャッチされるのBad file descriptorですか?

どんな助けでも大歓迎です、ありがとう!

0 投票する
6 に答える
7518 参照

ruby-on-rails - 春とミドルウェアの競合?

これらの手順に従って、Google で oauth2 を追加しようとしています。

サーバーの起動中に次のエラー メッセージが表示されます。

関連する gem がインストールされています。

次のコードが追加されますconfig/initializers/omniauth.rb:

ここで何が起こっているのですか?エラーの指示に従っても何も変わりません (Spring は最新バージョン 1.7.2 であり、実行するとbundle exec spring binstub --all「Spring already present」のみが返されます)。

0 投票する
0 に答える
58 参照

ruby-on-rails - Ruby on Rails で bin/spring が再起動されるまで User.count が 0 を返すのはなぜですか?

私は走るbundle exec rails c

開発環境に入ります。

User.count を実行すると、0 レコードが取得されます。

  1. しかしbin/spring stop、その後bin/spring start、User.count レコードが 23782 と表示されます。なぜですか?
  2. 春はここで何をしますか?
  3. その役割と責任は何ですか?
  4. 毎回これを行う必要がありますか?
  5. このSpringはJava Springと同じですか?