Theo http://edgeapi.rubyonrails.org/classes/Rails/Railtie.html, nếu tôi viết một plugin Rails 3 và tôi muốn để móc vào quá trình khởi tạo, tôi viếtThêm bước khởi để Rails 3 quá trình khởi động chỉ trong chế độ máy chủ
class MyRailtie < Rails::Railtie
initializer "my_railtie.configure_rails_initialization" do
# some initialization behavior
end
end
Tuy nhiên, khởi tạo này xuất hiện được thực hiện khi bạn chạy, ví dụ: tác vụ Rails rake
, không chỉ khi bạn chạy rails s
hoặc tương tự. Câu hỏi của tôi là, làm thế nào để ngăn chặn mã của tôi trong khối này đang được chạy trong các nhiệm vụ Rails, như trái ngược với máy chủ khởi động đầy đủ Rails? Điều này có vẻ là một vấn đề phổ biến với Rails 3 plugins.
Điều này không làm việc cho tôi, bất kỳ mã nào tôi đặt trong config.after_initialize được gọi ngay cả trong chế độ điều khiển hoặc chế độ cào – Alex
Hmm, bạn có sử dụng cùng một kiểu như trong [railoid.rb] của Môngoid không (https: // github. com/mongoid/mongoid/blob/master/lib/mongoid/railtie.rb)? Với 'config.after_initialize' được lồng vào bên trong của một khối' initializer'? –
Tôi đặt khối config.after_initialize vào application.rb của mình, nhưng đoạn mã dường như chạy mọi lúc không có vấn đề gì nếu nó được khởi chạy bằng đường ray c hoặc đường ray s, hoặc thậm chí một cái cào đơn giản – Alex