首先,这是一个在这里发布文章的菜鸟,所以如果我的格式是关闭的或者类似的东西,请告诉我,我很乐意修复它:)
我一直在学习迈克尔·哈特尔的Rails教程,它非常棒。我确信我的问题是因为我没有正确地做一些事情,但是我在网上找不到任何能解决我的问题的东西。
我在第6章中创建了一个用户数据库。在我尝试做user.save之前,一切都很好
为了供参考,下面是导致问题的步骤:
rails generate model User name:string email:string然后:
bundle exec rake db:migrate 打开沙箱控制台:
rails console --sandbox创建一个新用户
user = User.new(name: "Michael Hartl", email: "mhartl@example.com")保存它:
user.save所有东西都给出了预期的输出,直到user.save给出了这样的结果
irb(main):002:0> user.save (0.1ms) SAVEPOINT active_record_1 (0.1ms)回滚到SAVEPOINT active_record_1 ArgumentError:错误数量的参数(1为0)来自于抽象_适配器.irb:271:在/Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/connection_adap /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4中的
initialize' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/connection_adap ters/abstract_adapter.rb:271:in中,new‘from _ters_Adapter.rb:271 :insubstitute_at' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:97: in块in substitute_values’.2.0.beta 4/lib/active_record/Relation.rb:96: ineach' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:96: ineach_with_index‘fromeach' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:96: ineach_with_index insubstitute_values' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/relation.rb:56: in插入’from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/persistence.rb: 521:in_create_record' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/counter_cache.r b:139:in_create_record‘from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/attribute_metho ds/dirty.rb:122:in_create_record' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/callbacks.rb:30 6:inblock in _create_record’来自/Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/callbacks.rb: 88:incall' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/callbacks.rb: 88:in_run_callbacks‘in /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/callbacks.rb:734:在_run_create_callbacks' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0.beta4/lib/active_record/callbacks.rb:30 6:in_create_record‘. 22层.从/Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/railties-4.2.0.beta4/lib/rails/commands/console.rb:9:ins tart' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/railties-4.2.0.beta4/lib/rails/commands/commands_tasks.rb: 68:inconsole‘到/Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/railties-4.2.0.beta4/lib/rails/commands/commands_tasks.rb: 39:in来自/Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.的run_command!' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/railties-4.2.0.beta4/lib/rails/commands.rb:17:in‘rb:252:在/Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.中的require' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies. rb:252:in块中rb:237:在/Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.中,load_dependency' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies. rb:252:in要求‘from /User/Jonathon/Aptana 3 Workspace/RoR/bin/rails:8:in<top (required)>' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies. rb:246:inload’rb:246:inblock in load' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies. rb:237:inload_dependency‘inblock in load' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies. rb:237:inload_dependencyrb:246:inload' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:inrequire‘fromload' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from -e:1:in'irb(main):003:0>
我已经将我的user.rb文件放在这里:
class User < ActiveRecord::Base end
还有我的create_users.rb文件
class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :name t.string :email t.timestamps null: false end end end
谢谢,如果我还需要提供更多的信息,请告诉我!
发布于 2014-12-14 04:39:41
谢谢大家的帮助!
斯拉斯贝尔是对的,结果是我的数据库出了问题。克隆了本教程git并解决了问题。
发布于 2015-03-05 21:36:14
我也有同样的问题。一开始,当我像你一样尝试ArgumentError时,我就有了user.save。然后,当我尝试rake db:drop和rake db:migrate时,也遇到了同样的错误。
对于我的情况,它是在bundle update之后,我发现这个arel创业板版本造成了问题。它在Gemfile.lock上显示了Gemfile.lock,但是当我像以前一样尝试arel (6.0.0.beta2)时,它起了作用。
我也不知道原因。不过,我找到了这一讨论。现在我们的非beta Rails 4.2.0没有问题,如果我们没有在示例应用程序上使用bundle update (正如作者所说),Hartl教程也没有问题。
https://stackoverflow.com/questions/27465536
复制相似问题