2012-10-10 38 views
12

Tôi đã tạo ra một Rails Engine. Tôi gặp khó khăn khi sử dụng lệnh seed, nếu tôi chạy rake db: seed tôi nhận được lỗi: "uninitialized constant".Rails engine/Làm thế nào để sử dụng hạt giống?

Trong động cơ, tôi nhận được một seeds.rb:

Page.create(:title => 'Frontpage', :order => '1')

Sau đó, trong ứng dụng giả của tôi, tôi có một seeds.rb với

cms::Engine.load_seed 

(cms là tên của động cơ) - Tôi đã có một lỗi ngay bây giờ mặc dù, rằng "uninitialized hằng số". Làm thế nào để tôi tham khảo hằng số từ ứng dụng giả?

+0

Bạn sử dụng phiên bản ruby ​​\ rails nào? –

+0

Ngoài ra, hãy thử lệnh này: "rake cms: db: seed". Trường hợp cms - tên của động cơ. Và nhìn vào "rake -T" - điều này sẽ được trả lại cho bạn danh sách đầy đủ các lệnh có sẵn. –

+0

Cảm ơn - Tôi đã thử lệnh này, tôi vẫn nhận được "Trang liên tục chưa được khởi tạo". Tôi tạo ra "trang" mô hình. – jakobk

Trả lời

22

Ok, đã hiểu! - câu trả lời là:

Trong động cơ, thêm một seeds.rb trong thư mục db, hãy thêm tên ứng dụng cho mỗi liên tục, như vậy:

Cms::Page.create(:title => 'Frontpage', :order => '1') 

Trong ứng dụng giả, hoặc các ứng dụng mà bạn đang thêm động cơ của bạn, thêm một seeds.rb vào thư mục db với:

Cms::Engine.load_seed 

và chạy:

rake db:seed 

trong termin al.

+3

Có cách nào thực hiện quá trình này tự động thay vì thêm phương thức load_seed theo cách thủ công hay không. Tôi tự hỏi về trường hợp sử dụng nơi một viên ngọc có thể được thêm vào và loại bỏ. –

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