Thought in the brains of iron scrap

技術のこと以外を書くブログ

rails3.0.0でmongoidからのデータのインサートがうまくいってないっぽい(追記:自己解決)

scaffoldで作成したstringのみのmodelが対象。newのviewからcreateボタンを押した後、viewはこんなエラーを出力。findでデータが見つからない。

Document not found for class Sitefeed with id(s) 4c7dd0c379a63b2fde000001. 

mongod側はこんな感じのエラーを出力している。そもそもデータの追加がうまくいっていない

Wed Sep  1 13:04:19 [conn13] insert testapp_development.sitefeeds exception 12520 file allocation failure 2ms


使っているGemの一覧

$ bundle list
Gems included by the bundle:
  * abstract (1.0.0)
  * actionmailer (3.0.0)
  * actionpack (3.0.0)
  * activemodel (3.0.0)
  * activerecord (3.0.0)
  * activeresource (3.0.0)
  * activesupport (3.0.0)
  * arel (1.0.1)
  * bson (1.0.4)
  * bson_ext (1.0.4)
  * builder (2.1.2)
  * bundler (1.0.0.rc.6)
  * diff-lcs (1.1.2)
  * erubis (2.6.6)
  * factory_girl (1.3.2)
  * haml (3.0.18)
  * i18n (0.4.1)
  * jquery-rails (0.1.2 b779606)
  * mail (2.2.5)
  * mime-types (1.16)
  * mongo (1.0.7)
  * mongo_ext (0.19.3)
  * mongoid (2.0.0.beta.17 5e6466e)
  * polyglot (0.3.1)
  * rack (1.2.1)
  * rack-mount (0.6.13)
  * rack-test (0.5.4)
  * rails (3.0.0)
  * rails3-generators (0.13.0)
  * railties (3.0.0)
  * rake (0.8.7)
  * rspec (2.0.0.beta.20)
  * rspec-core (2.0.0.beta.20)
  * rspec-expectations (2.0.0.beta.20)
  * rspec-mocks (2.0.0.beta.20)
  * rspec-rails (2.0.0.beta.20)
  * thor (0.14.0)
  * treetop (1.4.8)
  * tzinfo (0.3.23)
  * will_paginate (3.0.pre2)

何が原因なんだろうか?
mongoidなしで、mongodbでデータ操作したり、mongoid以外のライブラリでmongodb触って、調べてみようか


<追記>
mongodの実行ユーザをローカルユーザだったため、dbpathで指定していたディレクトリに書き込み権限がなかっただけだった……


mondodb用の実行ユーザを作成して、dbpathとlogpathの所有権をmondodb用の実行ユーザに変更して、mondodをmondodb用の実行ユーザで起動で、無事mondoid経由でデータのCRUDが成功した。


mongoidが原因ではないけど、ものすごくリクエストが返ってくるのは遅い。20sくらい。
developement.logを見る限り、そんな遅い処理は無いのだけど…

わかったら、別のエントリに書くと思う。