我有模型公司和公司已經安裝了carrierwave上傳器徽標。Carrierwave文件名在update_attributes上不斷變化
class Company < ActiveRecord::Base
mount_uploader :logo, LogoUploader
圖片上傳工作,但我有一個問題update_attributes。當用戶只想更新公司的描述或標題,但不想上傳新圖像時 - 每次都在更改DB中的文件名值。這裏有一個簡單的例子:
1.9.3-p545 :004 > a = Company.last
1.9.3-p545 :005 > a.update_attributes(:title => "test title 2")
(0.4ms) BEGIN
Company Exists (0.9ms) SELECT 1 AS one FROM `companies` WHERE (`companies`.`title` = BINARY 'test title 2' AND `companies`.`id` != 37) LIMIT 1
Company Load (0.7ms) SELECT `companies`.* FROM `companies` WHERE `companies`.`id` = 37 LIMIT 1
(0.7ms) UPDATE `companies` SET `title` = 'test title 2', `logo` = '1396206630_1f288be4.jpg', `updated_at` = '2014-03-30 19:10:30' WHERE `companies`.`id` = 37
(8.1ms) COMMIT
=> true
爲什麼標誌在這裏用新值更新,即使沒有給出新的值?如何避免這種情況?
'數據庫中的文件名值每次都會改變'新文件名或現有文件名?更新前的原始文件名是什麼?你的意思是'1396206630_1f288be4.jpg'是一個新的文件名嗎? –
使用新的文件名。雖然沒有新文件上傳。 – Povkys