2010-03-22 3 views
35

나는 User 모델을 가지고 있습니다.레일 콘솔에서 데이터베이스에 데이터를 추가하는 방법

>> @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

이없이 답변을 대신 사용하려고 @u = ...를 사용 또한

. 그다지 SO : –

+2

당신은 "id : nil, userid : nil"을 가지고있다. ID가 2 개인 이유는 무엇입니까? 사용자 ID는 실제로 문자열입니까? 모델을 게시 할 수 있습니까? – James

+1

'userid'는 나에게 비린내가납니다. 레일스가 아닙니다. 모델의 모든 속성을 게시 할 수 있습니까? – Kezzer

답변

2

나는 새로운 레일 응용 프로그램을 만들려고했고, 나는 다음과 같은 작업을 수행 할 수 있습니다 대신 새의 생성과

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 = ...

49
>> u = User.create :userid => "myuserid", :password => "mypasswd", :user_first_name => "test", :user_last_name => "testovich", :user_status => "mystatus", :user_type => "mytype" 
관련 문제