@tasks = task.find(:all, :conditions => [ 'complete = ?', false ])
@task = task.find(:first, :conditions => [ 'complete = ?', false ], :order => 'created_at desc')
以動態的find_by和find_all_by方法縮短查詢語句,以下**等效。
@tasks = task.find_all_by_complete(false)
@task = task.find_by_complete(false, :order => 'created_at desc')
另外1.對於:conditons後面有2個引數的情況,下面的**等效。
task.find(:all, :conditions => [ 'complete = ? and category_id = ?', false, 1 ])
task.find_all_by_complete_and_category_id(false, 1)
2.動態查詢支援nil, array以及range作為引數。看源**有下面一段:
def attribute_condition(argument)
case argument
when nil then "is ?"
when array then "in (?)"
when range then "between ? and ?"
else "= ?"
end
end
於是,如果想要查詢上海或者北京,18到30歲的使用者,可以這麼寫
user.find_all_by_city_and_age([ 'shanghai', 'beijing' ], 18..30)
3.動態查詢仍然可以使用:conditions引數,額外的條件會使用with_scope來約束。
book.find_by_title('title', :conditions => ['price > ?', price])
SHELL 002 ps命令常用方法
1.檢視服務程序號 檢視服務是否正常執行 ps ef grep 服務名 grep v grep eg root lnp ps ef grep php fpm grep v grep nginx 1682 1681 0 17 16 00 00 00 php fpm pool www nginx 168...
動態規劃題解 D002 合唱團
有 n 個學生站成一排,每個學生有乙個能力值,牛牛想從這 n 個學生中按照順序選取 k 名學生,要求相鄰兩個學生的位置編號的差不超過 d,使得這 k 個學生的能力值的乘積最大,你能返回最大的乘積嗎?每個輸入包含 1 個測試用例。每個測試資料的第一行包含乙個整數 n 1 n 50 表示學生的個數,接下...
003 設計模式 002 工廠方法模式
工廠方法模式有3種 普通工廠模式 對實現同一介面的類進行例項的建立 工廠類提供乙個建立物件的方法 建立物件的方法有乙個入參,引數不同,建立的物件不同 多方法工廠模式 對實現同一介面的類進行例項的建立 工廠類提供多個普通 非靜態 建立物件的方法 每個方法建立的物件不同 靜態工廠模式 對實現同一介面的類...