3

Neo4j.rb 中的 Rails 6 有开发吗?在一个新的 rails 6(rc1) 项目中,如果我创建了几个脚手架,然后运行“rake neo4j:migrate:all”,我会收到一个错误,当我快速跟随它时,ActiveModel 内部的兔子洞比我可以解析的要深得多:

NoMethodError: undefined method `force_change' for #<ActiveModel::NullMutationTracker:0x00007fa1aadd8788>
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/activemodel-6.0.0.rc1/lib/active_model/dirty.rb:268:in `attribute_will_change!'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/activemodel-6.0.0.rc1/lib/active_model/attribute_methods.rb:383:in `migration_id_will_change!'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/shared/property.rb:213:in `block in attribute!'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/shared/property.rb:51:in `block in send_props'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/shared/property.rb:51:in `each'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/shared/property.rb:51:in `send_props'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/shared/property.rb:32:in `initialize'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/active_node/property.rb:7:in `initialize'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/shared/callbacks.rb:19:in `block in initialize'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/activesupport-6.0.0.rc1/lib/active_support/callbacks.rb:101:in `run_callbacks'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/shared/callbacks.rb:19:in `initialize'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/active_node.rb:53:in `initialize'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/active_node/persistence.rb:116:in `new'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/active_node/persistence.rb:116:in `create!'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/base.rb:31:in `migrate_up'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/base.rb:16:in `block in migrate'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/benchmark.rb:308:in `realtime'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/base.rb:15:in `migrate'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/runner.rb:127:in `block in migrate'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/runner.rb:133:in `migration_message'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/runner.rb:125:in `migrate'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/runner.rb:26:in `block in all'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/runner.rb:24:in `each'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/migrations/runner.rb:24:in `all'
/Users/metkat/.rvm/gems/ruby-2.6.0/gems/neo4j-9.2.4/lib/neo4j/tasks/migration.rake:116:in `block (3 levels) in <main>'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/task.rb:273:in `block in execute'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/task.rb:273:in `each'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/task.rb:273:in `execute'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/task.rb:214:in `block in invoke_with_call_chain'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/task.rb:194:in `invoke_with_call_chain'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/task.rb:183:in `invoke'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:160:in `invoke_task'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:116:in `each'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:116:in `block in top_level'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:125:in `run_with_threads'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:110:in `top_level'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:83:in `block in run'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/lib/rake/application.rb:80:in `run'
/Users/metkat/.rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/Users/metkat/.rvm/gems/ruby-2.6.0/bin/rake:23:in `load'
/Users/metkat/.rvm/gems/ruby-2.6.0/bin/rake:23:in `<main>'
/Users/metkat/.rvm/gems/ruby-2.6.0/bin/ruby_executable_hooks:24:in `eval'
/Users/metkat/.rvm/gems/ruby-2.6.0/bin/ruby_executable_hooks:24:in `<main>'
Tasks: TOP => neo4j:migrate:all
4

2 回答 2

4

此拉取请求已修复它。有neo4jrb版本9.6.0及以后。

于 2019-09-04T02:19:37.157 回答
1

看起来它与登陆 RC1 的PR有关,我遇到了同样的问题。我ping了那个线程,看看它是否是故意的。同时,尝试ActiveModel::NullMutationTracker通过添加以下方法回滚到最后一个 beta 或猴子补丁(这是我所做的并确认它修复了问题):

  def forget_change(attr_name)
  end

  def original_value(attr_name)
  end

  def force_change(attr_name)
  end
于 2019-05-27T23:45:04.103 回答