MIN_AGE =參數[:MIN_AGE]查找條件問題
MAX_AGE =參數[:MAX_AGE]
@users = User.find(:所有, :條件=> [」歲月> = AND年< =?「,min_age,max_age])
這是用於搜索功能的控制器方法。正如你所看到的,我希望按年齡範圍進行搜索。這適用於所有max_age值高達99,但是當max_age超過99時,搜索將不會返回任何結果。我並沒有真正期待99歲以上的人,但我很好奇爲什麼會這樣。年齡是一個字符串。
MIN_AGE =參數[:MIN_AGE]查找條件問題
MAX_AGE =參數[:MAX_AGE]
@users = User.find(:所有, :條件=> [」歲月> = AND年< =?「,min_age,max_age])
這是用於搜索功能的控制器方法。正如你所看到的,我希望按年齡範圍進行搜索。這適用於所有max_age值高達99,但是當max_age超過99時,搜索將不會返回任何結果。我並沒有真正期待99歲以上的人,但我很好奇爲什麼會這樣。年齡是一個字符串。
這是因爲「100」出現在「20」之前時,您按字母順序比較字母數字。更改age
爲一個整數,它應該是,它會正常工作。
Mark Byers有正確的答案。所以它應該被接受。
但是你應該知道,這是你應該使用named scope的那種東西。
在user.rb
named_scope :ages_in_range, lambda {|min, max|
{:conditions => ["years >= ? AND years <= ?", min, max]}
}
現在在你的控制器:
@users = User.ages_in_range(min_age,max_age)
它在DB模式或者Ruby代碼字符串(VARCHAR)? – user94154 2010-02-13 00:29:49