Article:
Tránh reload tập tin
891
alide.myopenid.com 32Updated over 3 years ago |
Môi trường development trong Rails giúp phát triển chương trình rất nhanh, vì tập tin được tự động reload. Tuy nhiên, có trường hợp ta muốn tập tin không bị reload.
Ví dụ có tập tin my_serial.rb chứa model sau:
class MySerial
@@next_id = 1
@@mutex = Mutex.new
def self.next_id
@@mutex.synchronize do
@@next_id += 1
return @@next_id - 1
end
end
end
Nếu chạy trong môi trường production, thì chương trình chạy đúng. Tuy nhiên trong môi trường development, ta muốn tập tin này không bị reload, để tránh biến @@next_id bị reset.
Có giải pháp sau:
- Chuyển tập tin my_serial.rb vào thư mục lib của project.
- Trong environment.rb, thêm:
Dependencies.load_once_paths << "#{RAILS_ROOT}/lib"
1 2 
rails
32