Tôi đã đưa ra giải pháp cho rake routes
mất khoảng 8 giây để chạy mỗi lần. Đó là một bộ nhớ cache dựa trên tệp đơn giản chạy bundle exec rake routes
, lưu trữ kết quả đầu ra trong một tệp theo tmp. Tên tệp là băm md5 của config/routes.rb
, vì vậy nếu bạn thực hiện thay đổi và thay đổi lại, tệp sẽ sử dụng tệp được lưu trong bộ nhớ cache cũ.
tôi đặt các chức năng bash sau đây trong một tập tin thực thi mà tôi gọi fastroutes
:
if [ ! -f config/routes.rb ]; then
echo "Not in root of rails app"
exit 1
fi
cached_routes_filename="tmp/cached_routes_$(md5 -q config/routes.rb).txt"
function cache_routes {
bundle exec rake routes > $cached_routes_filename
}
function clear_cache {
for old_file in $(ls tmp/cache_routes*.txt); do
rm $old_file
done
}
function show_cache {
cat $cached_routes_filename
}
function show_current_filename {
echo $cached_routes_filename
}
function main {
if [ ! -f $cached_routes_filename ]; then
cache_routes
fi
show_cache
}
if [[ "$1" == "-f" ]]
then
show_current_filename
elif [[ "$1" == "-r" ]]
then
rm $cached_routes_filename
cache_routes
else
main
fi
Dưới đây là một github link quá.
Bằng cách này, bạn chỉ cần tạo ra các tuyến đường một lần, và sau đó fastroutes
sẽ sử dụng các giá trị được lưu trữ.
Là nó chỉ cào các tuyến đường mà phải mất một thời gian? Có chậm để khởi động máy chủ hoặc bảng điều khiển của bạn không? –
Better u có thể kiểm tra các tuyến đường cho bộ điều khiển CONTROLLER = tuyến cào controllername đặc biệt –
@Jan: máy chủ (khoảng 1:15 phút) và giao diện điều khiển (0:45 phút) cũng mất một thời gian –