2017-03-13 2 views
1

Ich versuche, MongoDB mit Rails 5 einzurichten. Ich benutze Cloud9, die Sie automatisch für die Verwendung von SQLite einzurichten scheint Ich habe ein paar Probleme damit. Ich habe MongoDB installiert und es meiner Edelsteindatei hinzugefügt.Rails 5 und MongoDB: Angegebenes 'sqlite3' für Datenbankadapter, aber das Juwel ist nicht geladen

Wenn ich laufen

rails g mongoid:config 

ich den Fehler:

Specified 'sqlite3' for database adapter, but the gem is not loaded. Add gem 'sqlite3' to your Gemfile (and ensure its version is at the minimum required by ActiveRecord)

Hier ist database.yml

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
# 
default: &default 
    adapter: sqlite3 
    pool: 5 
    timeout: 5000 

development: 
    <<: *default 
    database: db/development.sqlite3 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    <<: *default 
    database: db/test.sqlite3 

production: 
    <<: *default 
    database: db/production.sqlite3 

Ich bin nicht sicher, wie diese neu zu schreiben für MongoDB? Ich glaube, ich muss auch Active entfernen oder zu deaktivieren, aber ich bin nicht sicher, wie dies in Rails zu tun 5.

Antwort

1

Entfernen Sie Ihre generierte Anwendung und generieren Sie eine neue Schienenanwendung mit der Option --skip-active-record.

rails new your-project --skip-active-record 

Fügen Sie dann Mongo-Adapter zu Ihrer Gemfile und so weiter.

+0

Ich habe versucht, die generierte App zu entfernen, aber in Cloud9 scheint es nicht so gut zu funktionieren. Ich habe die Datei über das Terminal gelöscht (da kann ich nicht über Dateibaum). Es ist nicht mehr im Terminal, aber es ist immer noch im Dateibaum, auch nachdem ich es aktualisiert habe. Als ich die neue App erstellte, erschien diese auch nicht in der Dateistruktur. Ich denke, es wäre besser, ActiveRecord nur aus der bestehenden App zu entfernen. – xeno7

+0

Eigentlich werde ich nur den gesamten Inhalt des Arbeitsbereich-Ordners löschen, anstatt den Arbeitsbereich-Ordner selbst ... Das sollte funktionieren. – xeno7

0

Sie können dies tun:

database.yml

development: &global_settings 
    database: textual_development 
    host: 127.0.0.1 
    port: 27017 

test: 
    database: textual_test 
    <<: *global_settings 

production: 
    host: hostname 
    database: databasename 
    username: username 
    password: password 
    <<: *global_settings 

Dann erstellen einen Initialisierer in config/initializers genannt mongo.rb

mongo.rb

MongoMapper.setup(Rails.configuration.database_configuration, Rails.env, :logger => Rails.logger) 

Viel Spaß!

Verwandte Themen