詩歌rails之自定義Rake任務

2021-06-21 11:24:31 字數 1447 閱讀 5288

我們經常用rake db:migrate來做資料庫遷移

我們還可以使用rake -t來列出可得到的rake任務

讓我們在store這個rails程式中建立乙個自己的rake任務

我們建立store/lib/tasks/ryanb.rake:

ruby**

task :greet do

puts "hello world!"

end  

task :ask do

puts "how are you?"

end  

我們現在可以使用rake greet或rake ask來執行

對於相關聯的rake任務我們可以這樣做:

ruby**

task :greet do

puts "hello world!"

end  

task :ask => :greet do

puts "how are you?"

end  

ask任務依賴於greet任務,當我們執行rake ask時會先呼叫greet任務

需要rails環境的任務

ruby**

task :pick_winner => :environment do

user = user.find(:first, : order => 'rand()')  

puts "winner #"

end  

名字空間

ruby**

namespace :pick do

task:winner => :environment do

user = user.find(:first, : order => 'rand()')  

puts "winner #"

end  

end  

提取公用方法:

ruby**

namespace :pick do

desc "pick a random user as the winner"

task :winner => :environment do

puts "winner: #"

end  

desc "pick a random product as the prize"

task :prize => :environment do

puts "prize: #"

end  

def "pick a random prize as the prize"

task :all => [:prize, :winner]  

def pick(model_class)  

model_class.find(:first, : order => 'rand()')  

end  

end 

**:

rails自定義校驗

當內建的校驗 helpers 不能滿足專案需求時,可以根據具體需求來編寫自己的校驗器或者校驗方法。其中,當有比較通用的規則需要校驗時,優先考慮使用自定義校驗器.自定義校驗器 給需要校驗的單獨屬性新增自定義校驗器最便捷的方法是使用 activemodel eachcalidator。這種情況下,自定義...

詩歌rails 之gem命令

1.顯示gem的幫助和版本 gem h help 顯示gem的幫助 gem v version 顯示gem的版本號 2.列出遠端庫的所有可用軟體 gem query remote 短命令 gem q r 你可以看到乙個關於遠端主機上所有軟體的詳細列表。3.查詢遠端主機上的特定軟體 gem query...

Rails3用rescue from自定義錯誤頁面

很早之前我自定義錯誤頁面都是重寫showexceptions的rescue action in public和rescue action locally方法,但是這樣做侵入性太強,今天偶爾看到了乙個方法 rescue from的方法,使用方法如下 rescue from klasses,block ...