2011-11-20 30 views

Trả lời

17

Cách thông thường để thiết lập bất kỳ dữ liệu mặc định trong Rails là bằng cách thêm các dữ liệu trong db/seeds.rb:

user1 = User.create :name => "User1", :email => "[email protected]", :password => "user123" 

Tùy thuộc vào kiểm chứng thực của bạn và đưa ra các tính năng bạn có thể cần phải nhập nhiều lĩnh vực. Để sử dụng dữ liệu đó, bạn chỉ cần gọi rake db:seed.

rake db:migrate 
rake db:seed 
+2

bạn cũng có thể thêm mã như: if Rails.env == 'phát triển' nếu bạn có hạt giống cụ thể môi trường –

+1

Ngoài ra, 'rake db: reset' sẽ làm một thiết lập lại toàn bộ cơ sở dữ liệu, bao gồm cả hạt giống lại cho bạn. Có ích. – ardavis

2

Faker là một lựa chọn tuyệt vời nếu bạn không muốn viết tất cả người dùng bằng tay.

Điều này faker tutorial cho biết cách sử dụng đá quý để điền db vào một công việc cào tương đối đơn giản.

+0

Liên kết thứ hai bị hỏng – 0112

1

Ngoài ra: Phương thức bên dưới sẽ không hoạt động.

User.new 
User.name = "Bob" 
User.password = "Bob123" 
User.password_confirmation = "Bob123" 
User.save! ## Exception raised => Password field cannot be blank. 

Vì Devise chạy các phương thức nội bộ, như 'tạo mật khẩu được mã hóa' sau 'mới' được gọi trên Người dùng. Vì vậy, User.new tăng ngoại lệ, nói rằng mật khẩu không được cung cấp. Thay vì sử dụng, hoặc

User.create({ :name => "Bob", ... }) # or 
User.new({ :name => "Bob", ... }).save 
Các vấn đề liên quan