Rails:NoMethodError:未定义的方法`load_documents' for Psych:模块

时间:2018-02-07 22:04:35

标签: ruby-on-rails ruby

我一直在使用yaml_db gem将数据库转储到yaml,然后在需要时重新加载。但是,在一个新项目中,在rake db:load上我得到了错误消息:

NoMethodError: undefined method `load_documents' for Psych:Module
Did you mean?  load_stream
/Users/user/.rvm/gems/ruby-2.5.0/gems/yaml_db-0.6.0/lib/yaml_db.rb:61:in `load_documents'

我提交的解决方案我最终想出了答案,但我对此并不满意。如果有人有更好的解决方案或建议比yaml_db gem更好的东西来转储和重新加载数据库,我很乐意倾听。

我在Ruby 2.5.0上运行Rails 5.1.4

2 个答案:

答案 0 :(得分:3)

我提出的解决方案是将“心理”放在心理上。在yaml_db之前在我的Gemfile中创建gem并将其设置为早期版本:

gem 'psych', '~> 2.2.1'
gem 'yaml_db'

答案 1 :(得分:1)

此问题是由于load_documents在Psych中deprecated导致的,最后在ruby 2.5中删除。有一个open PR on yaml_db可以修复此问题,因此希望未来的版本不会要求您使用此解决方法。

您当前的解决方案可能是目前最简单的解决方案(没有降级您的ruby版本,这可能是一个更糟糕的想法)。