把RailsCasts中的視頻講的內(nèi)容總結(jié)成文章护蝶,每個視頻對應(yīng)一片文章,希望可以幫助到那些想要學(xué)習(xí)RailsCasts 但又被英文阻礙的同學(xué)。
find_by 動態(tài)方法
@tasks = Task.find(:all, :conditions => ["complete=?", false])
上面是一個普通的應(yīng)用active record查詢數(shù)據(jù)庫的語句,在tasks表中查詢complete字段為false的數(shù)據(jù)啤咽。
在Rails中當(dāng)然有更優(yōu)雅的寫法,那就是find_by 動態(tài)方法渠脉,故名思意宇整, 動態(tài)方法是程序動態(tài)生成的方法,而非預(yù)定義的芋膘,Rails可以根據(jù)你模型字段的不同生成不同的動態(tài)方法鳞青。
find_by動態(tài)方法的格式是
Model.find_by_[attribute_name](attribute_value)
Model.find_all_by_[attribute_name](attribute_value)
這里的[attribute_name]你可以替換為模型對象里的任意字段名霸饲,而兩者的卻別就是第一中只返回符合條件的第一條數(shù)據(jù), 第二種呢則返回符合查詢條件的數(shù)據(jù)集臂拓。
比如上面的例子厚脉,就可以寫成
@tasks = Task.find_all_by_complete(false)
ps: 上面的find方法還是Rails2中的寫法, Rails3后find方法有了變化埃儿, 不過上面講的find_by動態(tài)方法還是可以用器仗。