2015-03-19 22 views
16

Tôi đang học Ruby on Rails, và tôi muốn đảm bảo rằng tôi hiểu sự khác biệt giữa đồ đạc và dữ liệu hạt giống. Những gì tôi hiểu là đồ đạc là cơ bản thử nghiệm dữ liệu mà bạn chạy xác nhận thử nghiệm của bạn chống lại, và không có kiên trì ngay sau khi thử nghiệm của bạn được thực hiện, trong khi hạt giống bạn đưa vào cơ sở dữ liệu tự động khi bạn làm một cái gì đó như rake db:seed.Rails fixtures vs hạt giống

Tại sao lại sử dụng hạt giống trong trường hợp này? Chỉ để tránh phải viết ra tất cả các xác nhận thử nghiệm vô số? Đối với dữ liệu mà bạn biết sẽ cần phải có trong cơ sở dữ liệu khi ứng dụng được đưa vào sản xuất?

(tôi đoán, dữ liệu tĩnh rằng sẽ luôn có được ở đó như quản trị đầu tiên trên một bảng tin?)

Trả lời

6

Nhiều ứng dụng cần một số dữ liệu chỉ để chạy đúng. Ví dụ: danh sách các quốc gia và mã zip. Hoặc, danh sách các vai trò tiềm năng để người dùng tiếp tục, ngay cả khi chưa có người dùng nào trong cơ sở dữ liệu.

Hãy suy nghĩ về dữ liệu hạt giống về những gì cần thiết để tạo môi trường phát triển và hoạt động. Nói chung, đối với một nhà phát triển Rails mới để làm việc trên bất kỳ ứng dụng, quá trình này nên luôn luôn đi như thế này:

  1. Clone repo
  2. Cài đặt đá quý qua bundler
  3. Tạo và hạt giống phát triển và thử nghiệm cơ sở dữ liệu
  4. Chạy thử nghiệm, mà phải vượt qua
+1

Không gieo cơ sở dữ liệu thử nghiệm của bạn. – maletor

+0

https://stackoverflow.com/a/25819011/1949363 là một câu trả lời ngắn gọn khác cùng dòng – srt32

11

Bạn đã nhận nó đúng. Dữ liệu hạt giống là điền dữ liệu tiên quyết vào cơ sở dữ liệu cần thiết để cho phép ứng dụng có thể sử dụng ngay từ đầu, như thêm tài khoản quản trị mặc định cần thiết để ứng dụng có thể quản lý ngay từ đầu.

Dữ liệu hạt giống không nên được sử dụng cho mục đích thử nghiệm, trong khi kiểm tra bạn nên luôn đảm bảo cơ sở dữ liệu sạch sẽ để bạn biết rằng dữ liệu duy nhất được sử dụng bởi một ví dụ là dữ liệu được điền bởi ví dụ. bên ngoài, điều này cho phép tránh nhầm lẫn.

đồ đạc là một cách để thực hiện việc này. nhưng cách tốt hơn là sử dụng các nhà máy như factory girl, kiểm tra điều này railscast episode để có giải thích tốt hơn.

+0

Câu trả lời hay, ngoại trừ tôi sẽ không giảm giá nhanh chóng. Các phiên bản mới nhất hoạt động tốt. Hãy thử đồ đạc trước. Nếu họ không làm những gì bạn muốn, sau đó tìm kiếm lựa chọn thay thế như cô gái nhà máy. – ReggieB

+0

Xem http://brandonhilkert.com/blog/7-reasons-why-im-sticking-with-minitest-and-fixtures-in-rails/ – ReggieB

Các vấn đề liên quan