2012-04-16 71 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