首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails教程user.save提供参数错误(1为0)

Rails教程user.save提供参数错误(1为0)
EN

Stack Overflow用户
提问于 2014-12-14 01:40:26
回答 2查看 429关注 0票数 1

首先,这是一个在这里发布文章的菜鸟,所以如果我的格式是关闭的或者类似的东西,请告诉我,我很乐意修复它:)

我一直在学习迈克尔·哈特尔的Rails教程,它非常棒。我确信我的问题是因为我没有正确地做一些事情,但是我在网上找不到任何能解决我的问题的东西。

我在第6章中创建了一个用户数据库。在我尝试做user.save之前,一切都很好

为了供参考,下面是导致问题的步骤:

代码语言:javascript
复制
rails generate model User name:string email:string

然后:

代码语言:javascript
复制
bundle exec rake db:migrate 

打开沙箱控制台:

代码语言:javascript
复制
 rails console --sandbox

创建一个新用户

代码语言:javascript
复制
user = User.new(name: "Michael Hartl", email: "mhartl@example.com")

保存它:

代码语言:javascript
复制
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 :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: in块in substitute_values’.2.0.beta 4/lib/active_record/Relation.rb:96: in 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‘from 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 in 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: 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:in 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‘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:in s 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: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‘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:in load' from /Users/Jonathon/.rbenv/versions/2.1.3/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:inrequire‘from load' from /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

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

EN

回答 2

Stack Overflow用户

发布于 2014-12-14 04:39:41

谢谢大家的帮助!

斯拉斯贝尔是对的,结果是我的数据库出了问题。克隆了本教程git并解决了问题。

票数 0
EN

Stack Overflow用户

发布于 2015-03-05 21:36:14

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

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

我也不知道原因。不过,我找到了这一讨论。现在我们的非beta Rails 4.2.0没有问题,如果我们没有在示例应用程序上使用bundle update (正如作者所说),Hartl教程也没有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27465536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档