12/08/2018, 14:00

Tìm hiểu về Seed trong Rails

Seed là gì? Mỗi ứng dụng đều cần có dữ liệu, dữ liệu được lưu trong CSDL, và để kết nối phần mềm với CSDL thì seed là tập tin giúp chúng ta điều này. Seed-file chứa tất cả việc tạo các bản ghi cần thiết để giống các cơ sở dữ liệu với giá trị mặc định của nó. Dữ liệu có thể được load bằng ...

  1. Seed là gì?

Mỗi ứng dụng đều cần có dữ liệu, dữ liệu được lưu trong CSDL, và để kết nối phần mềm với CSDL thì seed là tập tin giúp chúng ta điều này.

Seed-file chứa tất cả việc tạo các bản ghi cần thiết để giống các cơ sở dữ liệu với giá trị mặc định của nó.

Dữ liệu có thể được load bằng lệnh :

  Rails vs 4.2.5 :
     rake db:seed
  ------
  Rails vs 5.0.0.1 co the dung 2 lenh:
     rake db:seed
     rails db:seed

Hoặc được tạo ra cùng với dữ liệu bằng lệnh :

    rails db:setup
  1. seeds.rb

Với file seeds.rb trong rails , Rails cho phép chúng ta thiết lập các giá trị mặc định dễ dàng và nhanh chóng. Đây là một lợi thế của Ruby trong môi trường Rails, bạn có thể truy cập vào tất cả các lớp và phương thức trong ứng dụng.

Trong file seeds.rb, đặt lệnh : puts "Create movies simple" sau đó, chạy lệnh : rails db:seed.

   puts "Create movies simple"

Kết quả:

Capture1.PNG

Chúng ta không cần phải nhập vào dữ liệu trong cửa sổ rails c nữa, để tạo các bản ghi, dữ liệu, "create" được có sẵn trong ứng dụng. Có thể tạo bằng "create" đơn giản trong db/seeds.rb như sau:

  movies = Movie.create(name: "One Peace")
  movies = Movie.create(name: "Conan")
  movies = Movie.create(name: "DragonBall")

Sau đó, đưa đến CSDL với lệnh sau:

   Rails 4: rake db:seed
   -----
   Rails 5: dùng được cả 2 lệnh :
   rails db:seed
   rake db:seed

Để dữ liệu an toàn, nên luôn luôn thiết lập dữ liệu với lệnh:

  rake db:setup

Kết quả:

Capture.PNG

Mình chưa thực sự hiểu về seed trong rails,nên bài tìm hiểu còn thiếu nhiều phần,cảm ơn mọi người đã đọc bài tìm hiểu.

0