0

次のコードは、開発中は魔法のように機能しますが、本番環境ではデータベースに更新が発行されることはありません。基本的に、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

4

1 に答える 1

0

自己解決しました..

公式のUbuntuリポジトリソースからのMongodb 1.2.2が問題であることがわかりました。2.0.5 に更新した後、すべてが正常に機能するようになりました。

于 2012-08-28T07:31:07.063 に答える