2014-05-01 24 views
1

如何在rails中執行此操作?佔位符ActiveRecord的順序方法

User.order("abs(height-?)",val) 

好像佔位符不order方法的支持,是有一些較低級別的方法,我可以用它來處理plceholders?

回答

1

我認爲這可能是一個地方,你應該實際使用字符串插值,而是使用白名單,以確保val不包含任何怪異

if User.column_names.include? val 
    User.order("abs(height - #{val})") 
else 
    #some error handling 
end 
+0

呀,問題是val不是列名 – Anri

+0

是有一種方法可以指定應該保存的值? – Slicedpan

+0

如果val是一個數字,那麼無論您是否從高度減去它,排序都是相同的 – Slicedpan