【发布时间】: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