【问题标题】:Rails Tutorial user.save giving Argument Error (1 for 0)Rails 教程 user.save 给出参数错误(1 比 0)
【发布时间】:2015-02-12 10:57:21
【问题描述】:

首先,在这里发帖有点菜鸟,所以如果我的格式关闭或类似情况,请告诉我,我很乐意修复它:)

我一直在关注 Michael Hartl 的 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) 回滚到保存点 active_record_1 ArgumentError:参数数量错误(1 代表 0) 来自/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 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:innew' 来自/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 substitute_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: inblock 在替代值' 来自/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: 在each' 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' 来自/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: 在substitute_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: ininsert' 来自/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:在_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' 来自 /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:在call' 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' 来自/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:in @987654335 @安慰' 来自/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:在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' 来自/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 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:inblock in require' 来自/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:in 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:inrequire' 来自 /Users/Jonathon/Documents/Aptana Studio 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' 来自/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:in block 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' 来自/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:in load' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:inrequire' 来自/Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' 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

谢谢,如果我需要提供更多信息,请告诉我!

【问题讨论】:

  • 如果你在 'bundle exec rails console' 中运行它,没有 '--sandbox' 会报错吗?
  • 不,它没有。像正常一样加载控制台
  • 你的步骤看起来不错;我刚刚尝试过它们,对#save 的调用运行良好。你的环境中有些东西搞砸了,但很难说是什么。你能做些什么来获得一个干净的环境吗?
  • 嗯。我可以尝试获取他对 github 的提交。让我试试
  • 尝试相同的步骤,但不要将沙箱选项传递给 rails 控制台。也可以试试user = User.create(options) 而不是user = User.new(options)user.save 看看会发生什么。老实说,这很奇怪。您可能需要重新启动教程并记下您遇到的任何问题/有问题的消息。

标签: ruby-on-rails railstutorial.org


【解决方案1】:

感谢大家的帮助!

Slothbear 是对的,最终导致我的数据库出现问题。克隆了教程git,问题解决了。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。起初我有ArgumentError,当我像你一样尝试user.save时。然后当我尝试rake db:drop 然后rake db:migrate 时,我也遇到了同样的错误。

    我的情况是在bundle update 之后,我发现这个arel gem 版本会导致问题。它在 Gemfile.lock 上显示arel (6.0.0),但是当我像以前一样尝试arel (6.0.0.beta2) 时,它起作用了。

    我不知道为什么。我找到了this discussion。现在我们对非测试版 Rails 4.2.0 没有问题,如果我们在示例应用程序上不bundle update (正如作者所说),Hartl 教程也没有问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多