Создание движка Rails с MongoMapper - PullRequest
0 голосов
/ 11 января 2012

Я пытаюсь создать Rails 3 Engine, используя MongoMapper. Я испытываю боль, заставляя это работать. Вот моя модель:

module GoodComments
  class Comment
    include MongoMapper::Document

    key :comment,   String

  end
end

Супер просто, я знаю! Мой config / rout.rb :

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

Я создал 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

Я запустил rails generate scaffold_controller Comment -o mongo_mapper, и мои контроллеры были сгенерированы. Когда я запускаю свой сервер и захожу на http://localhost:3000/good_comments/comments, я получаю сообщение об ошибке:

LoadError в GoodComments :: CommentsController # index

Ожидается /Users/shamoon/Sites/good_comments/app/models/comment.rb для определения комментария Rails.root: / Пользователи / shamoon / Сайты / good_comments / test / dummy

Любая помощь?

1 Ответ

1 голос
/ 11 января 2012

Похоже, ваш контроллер ожидал класс под названием Comment в comment.rb, так что, возможно, контроллер должен работать в том же модуле?Или вам просто нужно указать некоторые нестандартные конфигурации или более точно указать, какую модель должен использовать контроллер.

Также в моем приложении MongoMapper у меня на несколько строк больше, чем вы добавили в начало 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"
...