2010-03-22 65 views
35

我有一個User模型。如何從rails控制檯向數據庫添加數據

>> @u = User.new 
=> #<User id: nil, userid: nil, password: nil, created_at: nil, updated_at: nil, user_first_name: nil, user_last_name: nil, user_status: nil, user_type: nil> 

我無法從控制檯向Users表添加數據。我正在做以下幾點:

>> @u.userid="test1" 
=> "test1" 
>> @u.password="test2" 
=> "test2" 
>> @u.user_first_name="test3" 
=> "test3" 
>> @u.user_last_name="test4" 
=> "test4" 
>> @u.user_status="test5" 
=> "test5" 
>> @u.user_type="test6" 
=> "test6" 
>> @u.save 
NoMethodError: undefined method `userid' for nil:NilClass 

我在做什麼錯?我只是簡單地想要將一行數據添加到應用程序中。

+3

+2並沒有答案。那不是非常如此:) – 2010-03-22 02:21:12

+2

你有「id:nil,userid:nil」。爲什麼2個ID?用戶名是否真的是一個字符串?你可以發佈你的模型嗎? – James 2010-03-23 10:30:42

+1

'userid'聞起來很腥,它不是很酷的。你可以發佈模型的所有屬性嗎? – Kezzer 2010-06-17 09:09:13

回答

2

我試圖創建一個新的Rails應用程序,我可以做到以下幾點:

irb(main):008:0> u= User.new 
=> #<User id: nil, name: nil, created_at: nil, updated_at: nil> 
irb(main):009:0> u.save 
=> true 
irb(main):011:0> User.find(3) 
=> #<User id: 3, name: nil, created_at: "2010-03-22 11:51:31", updated_at: "2010-03-22 11:51:31"> 

與創造,而不是新的相同的作品。我想你的用戶模型想要與尚未提供的另一個對象有關係。你能提供你當前的方案(位於db/schema.rb)嗎?

礦正在尋找這樣的:

ActiveRecord::Schema.define(:version => 20100322114826) do 

    create_table "users", :force => true do |t| 
    t.string "name" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    end 

end 
17

嘗試檢查,看看您所創建的實例有效。最簡單的方法是使用保存!方法...

@u.save! 

如果實例未通過所有驗證或發現任何其他問題,將會引發異常。堆棧跟蹤將有希望提供一些有用的信息。

而且,而是採用@u = ...嘗試使用剛剛u = ...

49
>> u = User.create :userid => "myuserid", :password => "mypasswd", :user_first_name => "test", :user_last_name => "testovich", :user_status => "mystatus", :user_type => "mytype" 
相關問題