2010-03-22 48 views
35

Tôi có một mô hình User.cách thêm dữ liệu vào cơ sở dữ liệu từ bảng điều khiển ray

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

Tôi không thể thêm dữ liệu vào bảng Users từ bảng điều khiển. Tôi đang làm như sau:

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

tôi đang làm gì sai? Tôi chỉ đơn giản muốn thêm một hàng dữ liệu vào ứng dụng.

+3

+2 và không có câu trả lời. thats not very SO :) –

+2

Bạn có "id: nil, userid: nil". Tại sao có 2 ID? Là userid thực sự là một chuỗi? Bạn có thể đăng mô hình của mình không? – James

+1

'userid' có mùi cá với tôi, nó không phải là rất rails-esque. Bạn có thể đăng tất cả các thuộc tính của mô hình không? – Kezzer

Trả lời

2

Tôi đã cố gắng để tạo ra một ứng dụng ray mới, và tôi có thể làm như sau:

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

Các công trình tương tự với tạo thay vì mới. Tôi cho rằng mô hình Người dùng của bạn muốn có mối quan hệ với một đối tượng khác chưa có sẵn. Bạn có thể cung cấp lược đồ hiện tại của bạn (nằm trong db/schema.rb) không?

Mỏ đang tìm kiếm như thế:

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

Hãy thử kiểm tra để xem nếu ví dụ bạn tạo là hợp lệ. Cách dễ nhất là sử dụng lưu! phương pháp ...

@u.save! 

Điều này sẽ gây ra ngoại lệ nếu trường hợp không vượt qua tất cả các xác thực hoặc nếu có bất kỳ vấn đề nào khác được tìm thấy. Theo dõi stack sau đó hy vọng sẽ cung cấp một số thông tin hữu ích.

Ngoài ra, thay vì sử dụng @u = ... cố gắng chỉ sử dụng u = ...

49
>> u = User.create :userid => "myuserid", :password => "mypasswd", :user_first_name => "test", :user_last_name => "testovich", :user_status => "mystatus", :user_type => "mytype" 
Các vấn đề liên quan