我只是在尝试 Mongodb 和最新的 rails 设置。
我正在使用 Rails 4.0.0.beta 1、Ruby 2.0.0p0 和 mongoid 4.0.0。
我有一个问题:我可以按预期创建和删除对象,但不能更新对象。没有返回错误,并且开发日志显示更改的参数正在正确传递。
有没有其他人遇到过这个问题?
我只是在尝试 Mongodb 和最新的 rails 设置。
我正在使用 Rails 4.0.0.beta 1、Ruby 2.0.0p0 和 mongoid 4.0.0。
我有一个问题:我可以按预期创建和删除对象,但不能更新对象。没有返回错误,并且开发日志显示更改的参数正在正确传递。
有没有其他人遇到过这个问题?
深入挖掘我发现 mongoid 4.0.0 仍然引用 moped 1.4.5,它官方只支持 ruby 版本到 1.9.3。
github 上最新的 moped 版本是 2.0.0,它适用于 ruby 2.0.0,但尚未发布到 gem 存储库。
看来我可能需要等待一段时间才能尝试这种组合。
我已经能够执行 CRUD 操作 - 但是现在在我的控制器中(仅用于测试/峰值)我允许所有参数通过 strong_parameters。
在我的 Gemfile 中,我有:
gem 'mongoid' , git: 'https://github.com/mongoid/mongoid.git'
在控制器中我有:
params.require(:foo).permit! # allows everything, and bad security!!!
请参阅此 railscast:(http://railscasts.com/episodes/400-what-s-new-in-rails-4)或代码:(https://github.com/railscasts/400-what-s- new-in-rails-4 )
使用 strong_parameters 查看控制器代码的更改,因为我认为这就是让您在更新时静默失败的原因:)
在我的一个模型上,有一些非常深的 has_many :foo 和 foo has_many :bar 和 bar has_many :baz,我在每个模型上都有 accept_nested_attributes_for。
所以只是说你可能想多尝试一下,或者在你尝试和我之前之间的 mongoid 下划线有更新。