[Railways] Railways funktioniert nicht, wenn sich das RubyMine-Projektstammverzeichnis nicht im Rails-Stammverzeichnis befindet.

Fazit

Erstellen Sie eine Rake-Datei im Projektstammverzeichnis.

# Rakefile

# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

#Unten vom Projektstammverzeichnis zur Rails-Stammverzeichnisanwendung.Geben Sie den relativen Pfad zu rb an
require_relative 'path_to_your_rails_app_root/config/application'

Rails.application.load_tasks

Ursache

Das Railsways-Plug-In führt intern "Rake-Routen" aus, die anscheinend die RubyMine-API verwenden. [^ 1] (Vermutlich mit RubyMines "Run Anything") Die Befehlsausführung mit "Run Anything" erfolgt im Projektstammverzeichnis. Wenn Sie den Befehl rake mit "Anything ausführen" ausführen möchten, müssen Sie daher eine "Rake-Datei" im Projektstammverzeichnis erstellen. Es gab auch eine Beschreibung in der offiziellen Hilfe. [^ 2]

Hintergrund

Persönlich war Railways sehr nützlich und ich habe es oft benutzt. Beim Hinzufügen eines Frontends oder Terraform zu einer Anwendung wollte ich die Verzeichnisse jedoch separat verwalten. Dann, bis jetzt, ist das Projektstammverzeichnis = Rials root, aber die Konfiguration ist wie folgt.

.
├── terratorm 
├── frontend
├── backend # Rails App
├── docker-compose.yml
└── README.md

Rakefile ist weg.

In diesem Zustand funktionierte die Eisenbahn nicht und ich war in Schwierigkeiten. Wenn Sie das Backend-Verzeichnis mit RubyMine öffnen, funktioniert es, aber wenn Sie dies tun, ist es schwierig, auf andere Verzeichnisse zuzugreifen, und es ist weniger bequem. Ich wollte Railways bei der Entwicklung nicht loslassen und fragte mich, ob ich etwas dagegen tun könnte.

zusätzliche Information

Übrigens können Railsways-Ausführungsaufgaben in den Einstellungen geändert werden. (Rialsways > Settings > Rake task name) Standardmäßig ist es "Routen", und Sie können sehen, dass der Befehl ausgeführt wird, indem Sie "Rake" als Präfix angeben. Daher dachte ich zuerst, dass dies durch Ändern dieses Ausführungsbefehls behoben werden könnte, aber es war unmöglich. Ich habe den Inhalt in "-f path_to_your_rails_root / Rakefile rouets" geändert, sodass "rake -f path_to_your_rails_root / Rakefile rouets" ausgeführt wurde, aber ich habe den folgenden Fehler erhalten.

rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/Users/xxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:698:in `raw_load_rakefile'
/Users/xxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:104:in `block in load_rakefile'
/Users/xxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/xxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:103:in `load_rakefile'
/Users/xxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:82:in `block in run'
/Users/xxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/xxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/lib/rake/application.rb:80:in `run'
/Users/xxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'

Ich habe die Rake-Datei mit der Option -f angegeben, aber warum ... Es war sinnlos, es mit einem absoluten Pfad anzugeben.

Außerdem kann Run Anything ohne das Rakefile im Projektstamm ausgeführt werden, indem das Flag -f hinzugefügt wird. Ich dachte, ich würde "Run Anything" intern verwenden, aber vielleicht ist es anders.

Wo auf der Erde werden Railsways-Aufgaben ausgeführt?

Zusammenfassung

Bis jetzt war mir "Rakefile" nicht besonders bewusst, und als ich diesmal nachforschte, wusste ich, welche Rolle es spielt. Es war diese Ernte, die ich während meiner Forschung mehr über "Rechen" gelernt habe.

Ich hoffe dieser Artikel hilft jemandem.

Recommended Posts

[Railways] Railways funktioniert nicht, wenn sich das RubyMine-Projektstammverzeichnis nicht im Rails-Stammverzeichnis befindet.
Wenn das Projekt nicht in Eclipse angezeigt wird
[Ruby on Rails] Wenn die ID-Erfassung des Parameters nicht gut lief
[Rails] Behebung des Problems, dass das Sitzungszeitlimit nicht funktioniert
[Schienen] Wenn die Layoutänderung des Geräts nicht berücksichtigt wird
Wenn das Formular wie "Auswählen von Materialisieren" nicht ordnungsgemäß funktioniert
[Rails] Annotate wird bei der Migration nicht ausgeführt
Funktioniert die Escape-Sequenz (\) nicht? (für Mac)
Wenn @Transactional of Spring Boot nicht funktioniert
Erkennt die Bibliothek bei der Implementierung von jcaptcha nicht
[Ruby on Rails] Wenn der Befehl heroku ausgeführt wird, wird der Befehl bash: heroku: nicht gefunden angezeigt. [Rails Tutorial]
Verarbeitung, wenn eine ID, die nicht in der Datenbank vorhanden ist, in die URL eingegeben wird
Im Warndialog beim Starten des Applets funktioniert die Prüfung "Beim nächsten Mal nicht anzeigen" nicht
[Hinweis] Wenn die Seitenzugriffsgeschwindigkeit nicht erhöht wird
PATH geht nicht vorbei ... Die Ursache ist der Zeichencode
So lösen Sie das Problem, wenn der Wert nicht gesendet wird, wenn das Formular in Schienen deaktiviert und gesendet wird
Ein Memo beim Abrufen der eingehenden Nummer mit Broadcast Receiver unter Android 9/10 funktioniert nicht
[Rails] Zeichnen Sie auf, wann das Ereignis nicht ausgelöst wurde, wenn der Name der Javascript-Datei mit dem des Controllers identisch ist