0
我已經寫了,我用我的模型,一個SQL查詢,下面提供查找:Ruby on Rails的 - 通過SQL添加撇號
Tag.find_by_sql(["SELECT tags.id, tags.name, count(*) AS count FROM tags
INNER JOIN taggings ON tags.id = taggings.tag_id
WHERE
(taggings.taggable_type = 'Discussion' AND taggings.taggable_id IN (SELECT id FROM `discussions` WHERE discussions.group_id = ?))
GROUP BY tag_id ORDER BY ? LIMIT ?;", self.id, self.id, self.id, self.id, order, limit])
這工作得很好,並翻出需要的標籤。但是標籤沒有正確排列。我在查詢有周圍的順序發言,像這樣的撇號服務器控制檯注意到:
ORDER BY 'count desc'
當我刪除了單引號,像這樣:
ORDER BY count desc
和手動運行查詢它拉標籤按正確的順序。有沒有辦法阻止將撇號添加到查詢中?
乾杯
託尼
好的。謝謝,是否足夠安全地執行以下操作:ORDER BY#{order} –
這取決於訂單來自何處。如果它是一個不可信的輸入 - 例如來自用戶或其他來源,而不是你,那麼不會。 –
我總是將自己置於控制器中。所以我認爲這種方法很安全,但是出於好奇還有另一種方法嗎? –