1
我需要做一個範圍,我覺得有一定的擴展名的文件 - 我目前的非功能性的嘗試是這樣的:不尋常的範圍
scope :visual, where(%w[.gif .jpg .jpeg .tif .tiff].include? File.extname(item_file_name), true)
這種嘗試讓我的錯誤 - 你如何創建範圍條件不僅僅是一個直接的SQL查詢?
我需要做一個範圍,我覺得有一定的擴展名的文件 - 我目前的非功能性的嘗試是這樣的:不尋常的範圍
scope :visual, where(%w[.gif .jpg .jpeg .tif .tiff].include? File.extname(item_file_name), true)
這種嘗試讓我的錯誤 - 你如何創建範圍條件不僅僅是一個直接的SQL查詢?
您需要直接編碼這些標準。
scope :visual, where("RIGHT(item_file_name,3) IN (?)
OR RIGHT(item_file_name,4) IN (?)",
['gif', 'jpg', 'tif'],
['jpeg', 'tiff'])
我建議將文件擴展名或MIME類型存儲爲自己的列,並對其進行查詢。它會比使用字符串函數更高效。實現本身是相似的,但更簡單。