2012-01-10 4 views
0

J'essaie de créer un moteur Rails 3 à l'aide de MongoMapper. Je souffre d'un monde de douleur. Voici mon modèle:Création d'un moteur Rails avec MongoMapper

module GoodComments 
    class Comment 
    include MongoMapper::Document 

    key :comment, String 

    end 
end 

Super simple, je sais! Mon config/routes.rb:

GoodComments::Engine.routes.draw do 
    resources :comments 
end 

J'ai créé une config /application.rb:

require File.expand_path('../boot', __FILE__) 

module GoodComments 
    class Application < Rails::Application 
    config.generators do |g| 
     g.orm :mongo_mapper # :active_record 
     g.template_engine :erb # :haml 
     g.test_framework :rspec, :fixture => true, :views => false 
     g.fixture_replacement :factory_girl, :dir => "spec/factories" 
    end 
    end 
end 

j'ai couru rails generate scaffold_controller Comment -o mongo_mapper et mes contrôleurs ont été générés. Quand je lance mon serveur et aller à http://localhost:3000/good_comments/comments, je reçois une erreur:

ChargeErreur dans GoodComments :: CommentsController # Index

/Users/shamoon/Sites/good_comments/app/models/comment.rb prévue pour définir Commenter Rails.root:/Users/shamoon/Sites/good_comments/test/dummy

Une aide?

+0

Bon .. cela fonctionne en quelque sorte si je me débarrasser de la ' Espace de nom de GoodComments dans le modèle. Mais l'échafaudage 'new' ne lit pas les champs dans la définition du modèle. – Shamoon

Répondre

1

Il semble que votre contrôleur attendait une classe appelée Comment dans comment.rb, alors peut-être que le contrôleur doit fonctionner dans le même module? Ou vous auriez juste à spécifier des configurations non-par défaut ou être plus précis sur le modèle que le contrôleur devrait utiliser.

également dans mon application MongoMapper J'ai quelques plus de lignes que vous avez ajouté en haut de config/application.rb:

require File.expand_path('../boot', __FILE__) 

# from http://mongomapper.com/documentation/getting-started/rails.html 
# replace: 
# require 'rails/all' 
# with: 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 
require "rails/test_unit/railtie" 
# Uncomment for asset pipelining in Rails 3.1 
# require "sprockets/railtie"