[英]Ruby on Rails: script/my_script vs rake my_namespace:my_task
怎樣才能決定是否把功能的generator
像腳本或rake
(或thor
任務?
一些例子:
在thinking-sphinx
, rake ts:start
將啟動sphinx
守護進程。 但在delayed_job
, scipt/delayed_job start
將啟動守護進程。 或多或少相同的功能(顯然)但不同的方法。
是否有明顯的理由在兩者之間進行選擇,即為什么選擇了script/generate model
,比如rake generate:model
在過去,這是一個相當主觀的問題。 但是今天Rails 3在腳本目錄( rails
)中只有一個文件,因此它不再是放置腳本的首選位置。
如果您有一個需要為Rails應用程序定義一個或多個Rake任務的gem,最好的方法是將gemtie添加到gem( Railtie docs )並使用rake_tasks
方法。
我根據是否需要加載整個rails環境/應用程序來運行腳本來決定這兩者。 如果是這樣,那么我將它作為一個rake任務。
例如,如果我的腳本需要訪問數據庫對象或我在我的應用程序中使用的代碼,那么可以肯定的是,我將把它作為rake任務。 否則,只需在/script
,它就會運行得更快。 如果你注意到, script/generate
類的東西不需要查看你的rails應用程序,因此不是rake任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.