0

我从 GitHub 克隆了一个项目,现在无法在本地运行。

我在浏览器中收到此错误:

Moped::Errors::ConnectionFailure at /
Could not connect to any secondary or primary nodes for replica set <Moped::Cluster nodes=[<Moped::Node resolved_address="127.0.0.1:27017">]>

在终端中,当我输入任何 Heroku 命令时出现此错误:

$ heroku info
 !    You do not have access to the app disrupt.

我是 Rails 的新手,所以简单的说明/建议会很棒。

这就是我的 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: disrupt_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:
# Configuration for whether or not to allow access to fields that do
# not have a field definition on the model. (default: true)
# allow_dynamic_fields: true

# 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

# User 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: disrupt_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


production:
  sessions:
default:
  uri: <%= ENV['MONGOHQ_URL'] %>
4

1 回答 1

0

您没有正确设置uri环境production(或其他)。

yml文件格式不知道您的顶级键之间的区别(它将默认:和生产:作为单独的键,因为它们没有嵌套)。

假设您在 Heroku 上使用 MongoHQ 3.x,请尝试更改...

production:
  sessions:
default:
  uri: <%= ENV['MONGOHQ_URL'] %>

...至...

production:
  sessions:
    default:
      uri: <%= ENV['MONGOHQ_URL'] %>

Heroku MongoHQ 文档应该有更多信息

于 2013-04-09T08:43:18.350 回答