6

Tôi không thể sử dụng model.update_attribute trên thuộc tính được gắn bởi trình tải lên của nhà cung cấp dịch vụ di động. Câu lệnh SQL sẽ không chấp nhận giá trị và thêm NULL vào trình giữ chỗ. Nếu tôi loại bỏ câu lệnh mount_uploader khỏi lớp mô hình thì nó hoạt động như bình thường. Tôi đang xử lý sự cố mọi thứ từ giao diện điều khiển và cố gắng thêm một số thuộc tính trong khi hạt giống DB và điều này là cản trở nỗ lực của tôi. Ý tưởng?Cập nhật thủ công thuộc tính được gắn bởi Trình tải lên Carrierwave

Cảm ơn.

Cập nhật: đang liên quan:

class Profile < ActiveRecord::Base 
    belongs_to :user 
    has_and_belongs_to_many :sports 
    has_and_belongs_to_many :interests 
    has_and_belongs_to_many :minors 
    has_and_belongs_to_many :majors 
    has_and_belongs_to_many :events 
    has_and_belongs_to_many :groups 
    attr_accessible :description, :username, :avatar, :bio, :first_name, :last_name, :major, :minor, :graduation_date, :living_situation, :phone, :major_ids, :minor_ids, :sport_ids 
    mount_uploader :avatar, AvatarUploader 
end 

Tôi chỉ đơn giản là cố gắng viết lại: string avatar từ một tập tin hạt db và trong khi thử nghiệm từ các đường ray giao diện điều khiển như vậy: Profile.first.update_attribute (: avatar, 'foo')

Cả hai đều hoạt động khi tôi nhận xét dòng mount_uploader.

Việc thêm phương thức mount_uploader có làm đóng băng chuỗi hoặc làm cho chuỗi đó không thay đổi được không?

+0

Nó sẽ rất hữu ích nếu bạn gửi mã bạn đang cố gắng để thực thi. Bạn đang cố gắng đặt thuộc tính cho giá trị nào? – lmars

Trả lời

7

Tôi đã tìm thấy giải pháp cho điều này.

Vấn đề của tôi là tôi không thể thay đổi thuộc tính gắn trình tải lên CarrierWave của tôi từ tệp seed.rb của tôi.

này hoạt động:

user.profile.update_column(:avatar, 'foobar/image.png')