2012-04-16 102 views
0

我尝试通过Rails控制台向数据库中插入值,但它不起作用。Ruby on Rails控制台错误

第一命令是
U = users.create(:名称=> “鲍勃”,:地址=> “都柏林”)

这是我运行所述第一命令

u=Users.create(:name=>"Ben",:address=>"Dublin") 
    (0.2ms) BEGIN 
    SQL (0.3ms) INSERT INTO `users` (`address`, `created_at`, `email`, `name`, `password`, `updated_at`) VALUES ('Dublin', '2012-04-16 23:15:48', NULL, 'Ben', NULL, '2012-04-16 23:15:48') 
    (9.1ms) COMMIT 
=> #<Users id: 2, name: "Ben", password: nil, email: nil, address: "Dublin", created_at: "2012-04-16 23:15:48", updated_at: "2012-04-16 23:15:48"> 
后的输出

这是第二个命令
吨= tweets.create(:状态=> “我是从摆锤鸣叫”,:用户=> U)

NameError: undefined local variable or method `tweets' for main:Object 
    from (irb):4 
    from /opt/bitnami/ruby/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands/console.rb:47:in `start' 
    from /opt/bitnami/ruby/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands/console.rb:8:in `start' 
    from /opt/bitnami/ruby/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:41:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 
+0

推文应该是鸣叫。资本,因为它的类名,红宝石类名称以大写字母开头。如果它的关系是User.find(id).tweets.create(:status =>“bla bla”),但在这种情况下,您不需要:user =>,因为他会知道谁附加它。 By Magic – 2012-04-16 23:13:32

+0

您好,感谢您的帮助,但是我在tweet表中创建了一个valeu,在用户表中引用? – Ben 2012-04-16 23:38:10

+0

这是user_id,所以我的意思是每条推文都有一个user_id。 – Ben 2012-04-16 23:38:54

回答

1

假设你有一个Tweet模型,你想要

u = User.first 
t = Tweet.create(:status => "I am a tweet from bob", :user => u) 
+0

是的,但我不知道为什么这个命令不会工作。 – Ben 2012-04-16 23:13:30

+0

什么?你是否说上述不起作用?什么是错误? – Alex 2012-04-17 13:24:26

+0

是的。我不知道为什么。不管怎么说,还是要谢谢你。 – Ben 2012-04-17 23:02:44