Ruby on rails Rails:NoMethodError:undefined方法'load#u documents';心理学:模块

Ruby on rails Rails:NoMethodError:undefined方法'load#u documents';心理学:模块,ruby-on-rails,ruby,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:i

很长一段时间以来,我一直在使用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,我提出的解决方案是将“psych”gem放在yaml_db之前的gem文件中,并将其设置为早期版本:

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

我提出的解决方案是将“psych”gem放在yaml_db之前的gem文件中,并将其设置为早期版本:

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

这个问题是由Psych中的
load\u文档引起的,最后在ruby 2.5中被删除。有一个解决此问题的方法,所以希望将来的版本不会要求您使用此解决方法


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

这个问题是由于
load\u documents
处于Psych状态,最终在ruby 2.5中被删除而引起的。有一个解决此问题的方法,所以希望将来的版本不会要求您使用此解决方法

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