ubuntu, ror, jQuery, css, website memo
太嫩, 沒啥心得, 用來紀錄每天學的
2009年8月20日 星期四
Rails Rake
Ruby on Rails Rake Tutorial (aka. How rake turned me into an alcoholic)
How do I write Rake tasks for my Rails application?
<br />#可以透過RAILS_ROOT 拿到application 的path<br />namespace :utils do<br /> desc "Create blank directories if they don’t already exist"<br /> task(:create_directories) do<br /><br /> 1. The folders I need to create<br /> shared_folders = ["icons","images","groups"]<br /><br /> for folder in shared_folders<br /><br /> 1. Check to see if it exists<br /> if File.exists?("#{RAILS_ROOT}/public/#{folder}")<br /> puts "#{RAILS_ROOT}/public/#{folder} exists"<br /> else<br /> puts "#{RAILS_ROOT}/public/#{folder} doesn’t exist so we’re creating"<br /> Dir.mkdir "#{RAILS_ROOT}/public/#{folder}"<br /> end<br /><br /> end<br /> end<br />end
Can I access my Rails Models inside a Task?
<br />#重點就是在 :enviroment<br /><br />#To run this task on my development db I would run “rake utils:send_expire_soon_emails”. If I wanted to run this on my production database, I would run “rake RAILS_ENV=production utils:send_expire_soon_emails”.<br /><br />#0 0 * * * cd /var/www/apps/rails_app/ && /usr/local/bin/rake RAILS_ENV=production utils:send_expire_soon_emails<br /><br />namespace :utils do<br /> desc "Finds soon to expire subscriptions and emails users"<br /> task(:send_expire_soon_emails => :environment) do<br /><br /> Find users to email<br /> for user in User.members_soon_to_expire<br /> puts “Emailing #{user.name}”<br /> UserNotifier.deliver_expire_soon_notification(user)<br /> end<br /> end<br />end <br /><br /><br />#rake a excute task b, task c first<br />rask(:a => [:b, :c] ) do<br /> # do some thing<br />end<br /><br /><br />#===========================<br />#rake dev:build<br /><br />namespace :dev do<br /> desc "Rebuild system"<br /> task :build => ["tmp:clear","db:drop", "db:create", "db:migrate", :setup, :fake]<br /><br /> desc "Setup system data"<br /> task :setup => :environment do<br /> puts "Attempts to create system user"<br /> u = User.new( :login => "root", :password => ‘password’ )<br /> u.save!<br /> end<br /><br /> desc "Create fake data"<br /> task :fake => :environment do<br /> Event.create!( :title => 'osdc 2008' )<br /> Event.create!( :title => 'osdc 2009' )<br /> Event.create!( :title => 'osdc 2010' )<br /> ...<br /> ...<br /> end<br />end<br /><br />
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
Tweet
t
沒有留言:
張貼留言