0

わかりましたので、ec2のubuntu 11.10にある新しいレールアプリがあり、dbとしてmongoidがあり、このエラーが発生し続けます

ActionView::Template::Error (db_name must be a string or symbol):

ここに私の config/mongoid.yml があります

development:
  host: localhost
  database: mm_development

test:
  host: localhost
  database: mm_test

# set these environment variables on your prod server
production:
  host: <%= ENV['MONGOID_HOST'] %>
  port: <%= ENV['MONGOID_PORT'] %>
  username: <%= ENV['MONGOID_USERNAME'] %>
  password: <%= ENV['MONGOID_PASSWORD'] %>
  database: <%= ENV['MONGOID_DATABASE'] %>
  # slaves:
  #   - host: slave1.local
  #     port: 27018
  #   - host: slave2.local
  #     port: 27019

私のdatabase.ymlは空白です。なぜなら、そこに行く必要があるかどうかわからなかったからです。これが私のmongoidのgemfileです

gem 'rails', '3.2.3'
gem 'jquery-rails'
gem 'haml'
gem 'unicorn'
gem 'mongoid'

最初に、database.yml で何をする必要があるかを誰かが知っているかどうかを知りたいです。次に、この問題をどのように解決しますか.... mongo は稼働していますが、このエラーは紛らわしいです

4

1 に答える 1

1

空の config/database.yml で実行するか削除する場合は、Active Record へのすべての参照を削除する必要があります。以下は私にとってはうまくいきました.config/application.rbと、提供されたGemfileとconfig/mongoid.ymlで初期テストに合格するために新しいRailsプロジェクトを取得するために私がしなければならなかったことを確認してください. test/test_helper.rb の "fixtures :all" もコメントアウトする必要があることに注意してください。開始するためのクリーンなベースとして、次のものと同等のものを再作成することをお勧めします。これが役立つことを願っています。

$ ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]
$ rails _3.2.3_ new free-11137-db_name
$ cd free-11137-db_name

Gemfile as per user

$ bundle install
$ gem install unicorn
$ bundle install
Using mongo (1.6.2)
Using mongoid (2.4.8)

$ rails g mongoid:config

config/mongoid.yml as per user
config/database.yml blank as per user
config/application.rb
    #require 'rails/all'
    require "action_controller/railtie"
    require "action_mailer/railtie"
    require "active_resource/railtie"
    require "rails/test_unit/railtie"
    # require "sprockets/railtie" # Uncomment this line for Rails 3.1+

remove all references to Active Record as follows
    config/application.rb
        #config.active_record.whitelist_attributes = true

    config/environments/development.rb
        #config.active_record.mass_assignment_sanitizer = :strict
        #config.active_record.auto_explain_threshold_in_seconds = 0.5

    config/environments/test.rb
      #config.active_record.mass_assignment_sanitizer = :strict

    test/test_helper.rb
        #fixtures :all

$ rails g model person
$ cat app/models/person.rb
class Person
  include Mongoid::Document
end
$ rm test/fixtures/people.yml
$ bundle exec rake test # succeeds
$ rm config/database.yml
$ bundle exec rake test # succeeds
于 2012-05-01T16:44:42.573 に答える