Trong đó phương pháp đã đề cập trước, không ai có vẻ sạch sẽ và lý tưởng như bạn mong chờ một kịch bản độc lập để chạy (không nhận được eval- ed hoặc đường ống qua < chuyển hướng), nhưng cuối cùng công trình này hoàn hảo cho tôi:
(đối với Rails 3)
Insert ở phía trên cùng của kịch bản của bạn:
#!/usr/bin/env ruby
APP_PATH = File.expand_path(appdir = '/srv/staging/strat/fundmgr/config/application', __FILE__)
require File.expand_path(appdir + '/../boot', __FILE__)
require APP_PATH
# set Rails.env here if desired
Rails.application.require_environment!
# your code here...
Tất nhiên, hãy đặt đường dẫn ứng dụng Rails của riêng bạn trong dòng APP_PATH.
Bằng cách đó, tôi có thể tránh được việc phải nhập bất kỳ tương tác irb
hoặc rails c
và có thể kiểm tra của tôi script.rb từ dấu nhắc shell, trước ví dụ. lên lịch nó trong crontab.
Nó cũng hỗ trợ thông số dòng lệnh một cách trơn tru và giảm thiểu mức độ trình bao bọc trước khi truy cập vào mã của bạn.
TÍN DỤNG (cũng cho thấy một ví dụ Rails 2)
http://zerowidth.com/2011/03/18/standalone-script-runner-bin-scripts-in-rails.html
có thể trùng lặp của [Làm thế nào để chạy một file Ruby trong một môi trường Rails?] (Http: //stackoverflow.com/questions/9757261/how-do-i-run-a-ruby-file-in-a-rails-environment) –