我對使用問號的區別感到困惑,例如使用有什麼區別?在ActiveRecord中清理字段時使用%?
Foo.find(:all, :conditions => ['bar IN (?)', @dangerous])
和使用的sprintf風格字段類型,例如
Bar.find(:all, :conditions => ['qux IN (%s)', @dangerous])
in sanitizing inputs。是否有任何安全優勢,如果你知道你正在尋找一個數字 - 比如ID--而不是字符串,使用%d嗎?或者當字符串出現時你只是要求一個嚴重錯誤的錯誤?
使用Rails 3和4中的newer.where語法,這是否完全改變?
我甚至不知道這是可能的rails2 – phoet
@ muistooshort,它似乎至少在Rails 3中起作用。關於未來打樣的好點,因爲它似乎沒有記錄在任何地方。 –
在3+我會說'在那裏(:巴=> @dangerous)'反正會做正確的事情,如果'@ dangerous'是一個非空數組(但很可惜,[什麼傻事(HTTP:/ /stackoverflow.com/a/12946338/479863)如果它是一個空陣列)。 –