2017-11-29 8 views
0

ich hinzugefügt, um die gemfile auszuführen:kann nicht Active Migration

gem 'activerecord-reputation-system', require: 'reputation_system' 

meiner Rails-Anwendung hinzuzufügen, um upvote/downvote functionity auf ein Modell (Ich folge Railscast # 364). Ich habe das Juwel ohne Probleme installiert.

ich eintreten 'Schienen g reputation_system' und rake db: wandern, aber die Rake abgebrochen wurde:

Gem::LoadError: You have already activated rake 12.3.0, but your 
Gemfile requires rake 12.0.0. Prepending `bundle exec` to your command 
may solve this. 

Ich versuchte es mit 'Bündel exec', aber der Rechen wurde erneut abgebrochen:

StandardError: An error has occurred, this and all later migrations 
canceled: 

Directly inheriting from ActiveRecord::Migration is not supported. 
Please specify the Rails release the migration was written for: 

Ich aktualisierte meine Edelsteine, um zu sehen, ob das der Ärger war, aber das machte keinen Unterschied.

Ich kann nicht an etwas anderes denken, das ich tun könnte, außer etwas Rake 12.3.0 zu finden und 12.0.0 zu installieren, aber das scheint unlogisch.

Jede Hilfe wäre vielen Dank geschätzt :-)

Antwort

0

In Rails 5 Migrationen benötigen Sie die Rails-Version angeben, die Sie verwenden (für die Migration angegeben) an der Spitze Ihrer Migrationsdatei, wie die Fehlerzustände.

Das sieht wie folgt aus:

class CreateYourModels < ActiveRecord::Migration[5.1] 
...your migration code 
end 

Wenn das Bit in Klammern ist die Rails-Version Sie verwenden.

Versuchen Sie dann, bundle exec rake db:migrate auszuführen.

Zusätzliche Erklärung: https://blog.bigbinary.com/2016/03/01/migrations-are-versioned-in-rails-5.html

+0

Dieser Artikel sagt mir, dass die Rails-Version in der generierten Migration angegeben wird, aber es stellt keinen Hinweis auf verschiedenen Terminal-Befehl. Oder gibt es etwas, das ich vermisse? – Robert

+0

Das ist eine gute Frage und ich bin schon mal darauf gestoßen. Es gibt keinen Unterschied im Terminalkommando, aber ich werde herausfinden, warum das der Fall sein könnte, und mich an Sie wenden. Welche Version von Schienen ist in deiner Edelsteindatei übrigens? In der Zwischenzeit geben Sie den aktualisierten Code in Ihre Migrationsdateien ein und lassen Sie mich wissen, ob er funktioniert. – inveterateliterate

+0

Oh ich denke ich sehe, was Sie meinten - aktualisieren Sie die Migrationsdateien und migrieren Sie sie dann. Ich werde das versuchen ... – Robert

Verwandte Themen