2

このチュートリアルに従って、Mongoid と Mongodb を使用して基本的な Rails 4 アプリケーションをセットアップしました。

配置用にサーバーに Passenger をセットアップしました。domain.com:3000 にアクセスすると、アプリケーションが動作します。また、domain.com:28017 にアクセスすると、mongodb が動作していることがわかります。

すべての例/チュートリアルで、アプリケーションが localhost:3000 でホストされていることがわかりますが、実際のドメインにデプロイしようとしています。

domain.com にアクセスすると、次のエラー メッセージが表示されます。

Problem:
  No sessions configuration provided.
Summary:
  Mongoid's configuration requires that you provide details about each session that can be     connected to, and requires in the sessions config at least 1 default session to exist.
Resolution:
  Double check your mongoid.yml to make sure that you have a top-level sessions key with at least      1 default session configuration for it. You can regenerate a new mongoid.yml for assistance via     `rails g mongoid:config`.

 Example:
   development:
     sessions:
       default:
         database: mongoid_dev
         hosts:
           - localhost:27017

 (Mongoid::Errors::NoSessionsConfig)

問題は、次のような私の mongoid.yml ファイルにあるようです。

development:
  # Configure available database sessions. (required)
  sessions:
  # Defines the default session. (required)
    default:
       # Defines the name of the default database that Mongoid can connect to.
       # (required).
       database: myapp_development
       # Provides the hosts the default session can connect to. Must be an array
       # of host:port pairs. (required)
       hosts:
        - localhost:27017
       options:
       # Change whether the session persists in safe mode by default.
       # (default: false)
       # safe: false

       # Change the default consistency model to :eventual or :strong.
       # :eventual will send reads to secondaries, :strong sends everything
       # to master. (default: :eventual)
       # consistency: :eventual

       # How many times Moped should attempt to retry an operation after
       # failure. (default: 30)
       # max_retries: 30

       # The time in seconds that Moped should wait before retrying an
       # operation on failure. (default: 1)
       # retry_interval: 1
  # Configure Mongoid specific options. (optional)
  options:
    # Enable the identity map, needed for eager loading. (default: false)
    # identity_map_enabled: false

    # Includes the root model name in json serialization. (default: false)
    # include_root_in_json: false

    # Include the _type field in serializaion. (default: false)
    # include_type_for_serialization: false

    # Preload all models in development, needed when models use
    # inheritance. (default: false)
    # preload_models: false

    # Protect id and type from mass assignment. (default: true)
    # protect_sensitive_fields: true

    # Raise an error when performing a #find and the document is not found.
    # (default: true)
    # raise_not_found_error: true

    # Raise an error when defining a scope with the same name as an
    # existing method. (default: false)
    # scope_overwrite_exception: false

    # Skip the database version check, used when connecting to a db without
    # admin access. (default: false)
    # skip_version_check: false

    # Use Active Support's time zone in conversions. (default: true)
    # use_activesupport_time_zone: true

    # Ensure all times are UTC in the app side. (default: false)
    # use_utc: false
test:
  sessions:
     default:
      database: myapp_test
      hosts:
        - localhost:27017
      options:
        consistency: :strong
        # In the test environment we lower the retries and retry interval to
        # low amounts for fast failures.
        max_retries: 1
        retry_interval: 0

通常、この問題はどのように解決されますか? 前もって感謝します

4

1 に答える 1

4

配備ツールである Passenger は、デフォルトで本番環境で実行されます。

mongoid.yml ファイルには現在、開発とテスト用の設定のみが含まれています。本番用の構成を追加する必要があります。

何かのようなもの:

production:
  sessions:
    default:
      database: myapp_production
      hosts:
        - localhost
于 2013-09-20T19:00:56.657 に答える