MongoMapper non mi permette di creare un oggetto
-
22-09-2019 - |
Domanda
Sto imparando MongoDB e MongoMapper. Questo è on Rails 3.
Ho creato un blog in app / modelli / blog.rb:
class Blog
include MongoMapper::Document
key :title, String, :required => true
key :body, Text
timestamps!
end
vado nella console Rails:
rotaie c
Loading development environment (Rails 3.0.0.beta)
ruby-1.9.1-p378 > b = Blog.new
NoMethodError: undefined method `from_mongo' for Text:Module
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/mongo_mapper-0.7.2/lib/mongo_mapper/plugins/keys.rb:323:in `get'
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/mongo_mapper-0.7.2/lib/mongo_mapper/plugins/keys.rb:269:in `read_key'
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/mongo_mapper-0.7.2/lib/mongo_mapper/plugins/keys.rb:224:in `[]'
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/mongo_mapper-0.7.2/lib/mongo_mapper/plugins/inspect.rb:7:in `block in inspect'
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/mongo_mapper-0.7.2/lib/mongo_mapper/plugins/inspect.rb:6:in `collect'
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/mongo_mapper-0.7.2/lib/mongo_mapper/plugins/inspect.rb:6:in `inspect'
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/railties-3.0.0.beta/lib/rails/commands/console.rb:47:in `start'
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/railties-3.0.0.beta/lib/rails/commands/console.rb:8:in `start'
from /Users/jade/.rvm/gems/ruby-1.9.1-p378/gems/railties-3.0.0.beta/lib/rails/commands.rb:34:in `<top (required)>'
from /Users/jade/code/farmerjade/script/rails:10:in `require'
from /Users/jade/code/farmerjade/script/rails:10:in `<main>'
Perchè sono affacciate qualcosa di veramente stupido, o si tratta di qualcosa nella mia configurazione?
Sto utilizzando la versione mongo_mapper si ottiene aggiungendo al vostro Gemfile, quindi mi chiedo se potrebbe essere quello. Apprezzerei tutti i suggerimenti!
Soluzione
Come sospettavo, questo è stato uno stupido errore. Stavo usando testo invece di stringa, e Mongo non supporta nativamente testo come chiave. Se si definisce un metodo from_mongo, sarebbe.
Grazie alla DanP su IRC per aver ricordato il mio errore.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow