【问题标题】:Mongoid code not working in productionMongoid 代码在生产中不起作用
【发布时间】:2012-08-28 15:31:07
【问题描述】:

以下代码在开发中就像一个魅力,但在生产中从未向数据库发布任何更新。基本上我正在尝试更新嵌套 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 运行 rails 3.2.7

如果有人能指出如何使 moped/mongoid 调试日志消息显示在 production.log 中,那也会很有帮助。我配置了 Debugging as described in the logs - 但这些调试消息仅在运行 rails s 时可见 - 在 production.log 中不可见

【问题讨论】:

  • 日志?我怀疑与数据库没有连接。只读页面呢,/article/1(猜测)显示的是一篇文章吗?
  • 是的..其他一切都很好..我什至可以通过其他方法设置值..只是这个不起作用..
  • 知道如何获取生产中的助力车日志吗?我已将日志记录设置为调试,如下所述:mongoid.org/en/mongoid/docs/installation.html#logging 但它们没有出现在 production.log
  • stackoverflow.com/questions/8794229/… mongodb 日志级别与 Rails 日志级别不同;确保将日志记录级别设置为在生产服务器上进行调试。
  • 在将日志记录级别设置为在 rails 中调试后,我仍然在控制台上看不到任何 mongoid 输出。 :( 我确实看到了所有 ActiveRecord sql 日志

标签: ruby-on-rails-3 mongodb mongoid


【解决方案1】:

自己解决了..

原来来自官方 Ubuntu 存储库源的 Mongodb 1.2.2 是问题所在。 更新到 2.0.5 后一切正常。

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 2014-01-30
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多