撰寫rake

在rails的框架中有一個超好用的的工具叫做rake,透過它你就可以很輕鬆地清掉log,操作資料庫的版本…..之類的。簡單的說可以把它想成是在rails 中的shell !!!!

如果你在一個rails的專案中打 rake -T  就會看到所有工作的列表,我常用的就是 rake log:clear 跟 rake db:drop , rake db:migrate ….之類的。

但是有時候我們還是會有一些想要擴充的功能,這時候,你就可以自己寫一個rake task !!!!!

目錄在  RAILS_ROOT/lib/tasks/  你可以寫一隻hello.rake 放到底下,內容大概像這樣:

namespace :yournamespace do
desc “clean log,upload file, and tar file"
task :yourtaskname => :environment do |t|
puts “hello world"

end
end

首先你要有一個namespace(可有可無,但為了避免衝突還是加上的好),然後底下 寫下描述 然後緊接著 taks的區塊。  如果你有很多task 可以都仿照這種架構建立。不過挺建議分隔個別的檔案,比較一目了然。

之後在專案的目錄底下打上  rake yournamespace:yourtask 就可以看到 hello world 了!!

目前跟朋友們正在寫一個網站,可是自己的git service 好像不像svn那麼好架@@,然後還沒到可以放在github的階段,所以只好先每天tar起來 然後交給某一個人merge(好啦 我之後會學習如何透過email 來交換git 檔案) 所以就寫了一個task 他會先把log,tmp file 跟上傳的檔案清除。然後再tar 起來。 有需要的可以拿去改一改~~~~

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s