polecam patrząc w użyciu rails runner
.
Skrypty runner mają dostęp do wszystkiego, łącznie z bazą danych, ale bez wszystkich widoków z modelu MVC. Doskonale nadają się do zadań back-end lub zadań, które działają w bazie danych, ale nie mają żadnego interfejsu.
Można również użyć rails rake
zamiast tego, ale uważam, że zadania rake są ukierunkowane na utrzymanie plików i katalogów oraz na strukturę budynku, a skrypty runner lepiej dla zwykłych zadań, takich jak coś, co można uruchamiać z crona okresowo.
Mam taki, którego używam do pobierania dzienników z witryny, analizowania ich, a następnie wprowadzania ich do jednej z moich baz danych. Nie ma powodu, aby uruchamiać pracę jako część aplikacji Rails, ponieważ nie było potrzeby korzystania z interfejsu. Uruchamianie jako skrypt runner
dobrze pasuje.
Wbudowany help mówi:
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.
You can also use runner as a shebang line for your scripts like this:
-------------------------------------------------------------
#!/path/to/your/rails/app/script/rails runner
Product.find(:all).each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
Ta ostatnia linia:
Product.find(:all).each { |p| p.price *= 2 ; p.save! }
pokazuje, jak łatwo jest.
Użyj 'YAML.load_file' zamiast' load' i 'File.open'. –