次のコードは、開発中は魔法のように機能しますが、本番環境ではデータベースに更新が発行されることはありません。基本的に、3レベルの深さでネストされたコレクション要素を更新しようとしています..
def set_collection_value
@article = Article.find(params[:id])
@article.highlights.items.find(params[:item_id])
item.update_attributes(params[:values])
render :json => item
end
問題のモデル記事は次のようになります。
class Article
include Mongoid::Document
embeds_one :highlight, class_name: 'Highlight'
end
highlight.rb
class Highlight
includes Mongoid::Document
embedded_in :article
embeds_many :items, class_name: 'HighlightElement'
end
highlight_item.rb
class HighlightElement
include Mongoid::Document
embedded_in :highlight
field :title, type: String
field :teaser, type: String
field :image, type: String
field :body, type: String
attr_accessible :title, :teaser, :image, :body
end
ここで面白いのは、実稼働モードでローカルで webrick を実行しても、魅力的に機能することです。mongodb v1.2.2 を実行している ubuntu サーバーに一度だけデプロイすると、上記のコードは黙って何もしません。
environments/development.rb
私は問題を解決することを望んで私のものを私のものにコピーするところまで行ったenvironments/production.rb
..しかし役に立たなかった..
何か案は?私はmongoid 3.0.3でレール3.2.7を実行しています
また、moped/mongoid のデバッグ ログ メッセージを production.log に表示する方法を誰かが指摘してくれると助かります。ログに記載されているようにデバッグを構成しましたが、これらのデバッグ メッセージは rails s を実行している場合にのみ表示されます。production.log