Ruby on Rails: script / my_script и rake my_namespace: my_task - PullRequest
3 голосов
/ 23 декабря 2010

Как решить, поместить функциональность в generator подобный скрипт или в rake (или thor задачу?

Некоторые примеры:

В thinking-sphinx, rake ts:start запустит демон sphinx. Но в delayed_job, scipt/delayed_job start запустит демон. Более-менее та же функциональность (по-видимому), но разные подходы.

Есть ли какие-либо очевидные причины для выбора между двумя, то есть, почему был выбран script/generate model, скажем, rake generate:model

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

В прошлом это был довольно субъективный вопрос.Но сегодня Rails 3 имеет только один файл в каталоге скриптов (rails), поэтому он не является предпочтительным местом для размещения скриптов.

Если у вас есть гем, для которого нужно определить одну или несколько задач Rake дляПриложение Rails, самый лучший способ - добавить Railtie в гем ( Railtie docs ) и использовать метод rake_tasks.

0 голосов
/ 23 декабря 2010

Я выбираю между двумя, основываясь на том, нужно ли мне загружать всю среду / приложение rails для запуска скрипта.Если это так, то я делаю это задачей с граблями.

Например, если моему сценарию требуется доступ к объектам базы данных или к коду, который я использую в своем приложении, то, безусловно, я сделаю это задачей с граблями.В противном случае, просто сделав это в /script, он будет работать намного быстрее.Если вы заметили, такие вещи, как script/generate, не должны смотреть на ваше приложение rails, и поэтому не являются рейковыми задачами.

...