4

現在、heroku mongoid mongolab/mongohq をテストしたいと考えています。

ただし、herokuアドオンを使用したくありません。代わりに、mongoidを構成して、uriまたは他の設定を介してmongolab/mongohqデータベースを直接使用したいと考えています。しかし、これは実際にはうまくいきません。

これまでに行ったことは次のとおりです。

rails new test-mongoid --skip-active-record

Gemfile

gem 'mongoid'
gem 'haml'
gem 'sass'

rails g mongoid:config

テストモデルの足場

rails g scaffold Article title:string body:string

モンゴイド.yml

production:
  host: <%= ENV['MONGOID_HOST'] %>
  port: <%= ENV['MONGOID_PORT'] %>
  username: <%= ENV['MONGOID_USERNAME'] %>
  password: <%= ENV['MONGOID_PASSWORD'] %>
  database: <%= ENV['MONGOID_DATABASE'] %>

他の試行はすでに mongoid.yml で行いました

production:
  uri: mongodb://<user>:<password>@<host>:<port>/<database>

ユーザー名パスワードなどを入力します。

mongodb を使用してローカルでテストしたところ、すべて正常に動作しました。それをherokuにプッシュしましたが、機能しません。

これらのherokuアドオンをバイパスして、それを処理する方法を知っている人はいますか?

よろしくお願いします。

編集

このように私のmongoid.ymlを設定しました

production:
  sessions:
    default:
      hosts:
        - <server>:<port>
      username: <username>
      password: <password>
      database: <dbname>

実行されているようです...しかし、足場の記事インデックスapp.herokuapp.com/articlesに移動しようとすると

私は得る

[2012-08-18 21:54:30] INFO  WEBrick 1.3.1
[2012-08-18 21:54:30] INFO  ruby 1.9.2 (2011-07-09) [x86_64-linux]
[2012-08-18 21:54:30] INFO  WEBrick::HTTPServer#start: pid=2 port=57443
State changed from starting to up
=> Booting WEBrick
=> Rails 3.2.1 application starting in production on http:// 0.0. 0.0:57443
=> Ctrl-C to shutdown server
=> Call with -d to detach
Started GET "/articles" for 79.199.52.102 at 2012-08-18 21:54:31 +0000
Processing by ArticlesController#index as HTML
Completed 500 Internal Server Error in 264ms
ActionView::Template::Error (undefined method `[]' for nil:NilClass):
11: 
10:   </tr>

14:     <td><%= article.title %></td>
15:     <td><%= article.body %></td>
13:   <tr>
Rendered articles/index.html.erb within layouts/application (208.2ms)
9:     <th></th>
12: <% for article in @articles %>
app/controllers/articles_controller.rb:7:in `index'

app/views/articles/index.html.erb:12:in    _app_views_articles_index_html_erb__1324099721200765517_18939540'

cache: [GET /articles] miss
GET safe-atoll-7856.herokuapp.com/articles dyno=web.1 queue=0 wait=0ms service=342ms status=500 bytes=643
Stopping remaining processes with SIGKILL
Error R12 (Exit timeout) -> At least one process failed to exit within 10 seconds of SIGTERM
Process exited with status 137
4

2 に答える 2

2

追加

ruby '1.9.3'

あなたにGemfileMongoid 3 + Heroku (MongoHQ) から Moped::Errors::OperationFailure を引き起こす

ローカルで Ruby 1.9.3 を使用している場合、これはうまくいくと思うかもしれませんが、そうではありません。

于 2012-10-29T04:20:06.507 に答える
0

あなたのmongoid.yml

production:
  host: your_host.mongohq.com
  port: 10078
  username:your_user_name
  password: your_pass
  database: your_db_name

実際、あなたがしていることは問題ありません。無効な値または不適切な形式の値である必要があります

于 2012-08-18T13:45:19.900 に答える