जवाबों:
सबसे सरल तरीका है rails runner
क्योंकि आपको अपनी स्क्रिप्ट को संशोधित करने की आवश्यकता नहीं है।
http://guides.rubyonrails.org/command_line.html#rails-runner
सिर्फ कहे rails runner script.rb
बस environment.rb
अपनी स्क्रिप्ट में आवश्यकता है। यदि आपकी स्क्रिप्ट script
आपके रेल एप्लिकेशन की निर्देशिका में स्थित है
require File.expand_path('../../config/environment', __FILE__)
RAILS_ENV
स्क्रिप्ट चलाते समय पर्यावरण चर सेट करके आप उपयोग किए गए पर्यावरण (विकास / परीक्षण / उत्पादन) को नियंत्रित कर सकते हैं ।
RAILS_ENV=production ruby script/test.rb
app/script
निर्देशिका से अपनी स्क्रिप्ट चला रहे हैं । पर्यावरण फ़ाइल को व्यक्तिगत ऐप से लिया जाएगा।
रनर गैर-अंतःक्रियात्मक रूप से रेल के संदर्भ में रूबी कोड चलाता है।
से rails runner
आदेश:
Usage: runner [options] ('Some.ruby(code)' or a filename)
-e, --environment=name Specifies the environment for the runner to operate under (test/development/production).
Default: development
-h, --help Show this help message.
आप अपनी स्क्रिप्ट के लिए रनर लाइन का उपयोग इस तरह से कर सकते हैं:
-------------------------------------------------------------
#!/usr/bin/env /Users/me/rails_project/script/rails runner
Product.all.each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
यह एक पुराना सवाल है, लेकिन मेरी राय में मैं अक्सर इसे एक रेक कार्य बनाने में मददगार पाता हूं ... और यह वास्तव में बहुत आसान है।
में lib/tasks/example.rake
:
namespace :example do
desc "Sample description you'd see if you ran: 'rake --tasks' in the terminal"
task create_user: :environment do
User.create! first_name: "Foo", last_name: "Bar"
end
और फिर टर्मिनल रन में:
rake example:create_user
स्थानीय रूप से यह आपके विकास डेटाबेस के संदर्भ में चलाया जाएगा, और यदि हर्को पर चलाया जाता है तो इसे आपके उत्पादन डेटाबेस से जुड़ा हुआ है। मुझे यह विशेष रूप से माइग्रेशन या संशोधित तालिकाओं की सहायता के लिए उपयोगी लगता है।