Rails中scopes的幾種使用方法

2021-07-30 02:34:42 字數 793 閱讀 8302

不傳引數使用scope方法

class user < activerecord::base

scope :finduser,

scope :has_content,

end

傳引數使用scope方法

class user < activerecord::base

scope :finduser, ->(username)

scope :has_content, ->(content)

endclass user < activerecord::base

scope :finduser, proc.new

scope :has_content, proc.new

endclass user < activerecord::base

scope :finduser, lambda

scope :has_content, lambda

endclass user < activerecord::base

def self.finduser username

where(username: username) unless username.empty?

enddef self.has_content content

lambda

endend

總結當邏輯是簡單的where/order這樣的查詢時使用scope;涉及到複雜查詢時,使用類方法。

另外,當需要做一些擴充套件時,作為active record提供的乙個特性,我還是推薦使用scope。

Rails中的validate校驗

可以使用validates presence of方法宣告模型類別非空驗證 validates presence of name,message 姓名不能為空 validates presence of message 性別不能為空 還可一次為多個屬性驗證 validates presence of...

rails中遞迴的煩悶

因為要實現樹展現,當然用非遞迴也可以的,不過考慮靈活性和維護簡便還是用遞迴實現,以下的例子是在helper中使用的,不過rails的輸出始終讓我有點找不到北,畢竟在webwork中如果實在要輸出依然可以通過response得到輸入流的,但rails似乎沒有,於是只能用如下如此愚蠢的方法實現了 pro...

Rails 中的 check box 用法

b 來自官方 b check box puppy gooddog yes no 說明 1.是用來放一些html的option的,比如,你希望你的check box被選中,check box puppy gooddog yes no 又比如,你希望你的多選框,有個class和css對應 check b...