উত্তর:
সহজ উপায়টি হ'ল 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
স্থানীয়ভাবে এটি আপনার বিকাশের ডাটাবেসের প্রসঙ্গে চালানো হবে এবং হেরোকুতে চালানো হলে এটি আপনার প্রোডাকশন ডাটাবেসের সাথে সংযুক্ত থাকাকালীন চালানো হবে। স্থানান্তরণ বা সংশোধিত টেবিলগুলিতে সহায়তা করার জন্য আমি এটি বিশেষভাবে দরকারী বলে মনে করি।