6

Ich kann model.update_attribute nicht für ein Attribut verwenden, das von einem Carrierwave-Uploader bereitgestellt wird. Die SQL-Anweisung akzeptiert den Wert nicht und fügt dem Platzhalter NULL hinzu. Wenn ich die mount_uploader-Anweisung aus der Modellklasse entferne, funktioniert sie normal. Ich habe Probleme mit der Konsole behoben und versucht, einige Attribute hinzuzufügen, während ich die DB säte, was meine Bemühungen zunichte macht. Ideen?Manuelles Aktualisieren von Attributen, die von Carrierwave Uploader bereitgestellt wurden

Danke.

Update: Relevante Code:

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 

bin ich einfach versucht, die neu zu schreiben: Avatar String aus einer db-Seed-Datei und während sie von der Schienen-Konsole testen, wie so: Profile.first.update_attribute (: avatar, 'foo')

Beide funktionieren, wenn ich die mount_uploader Zeile auskommentiere.

Fügt das Hinzufügen der mount_uploader-Methode die Zeichenfolge ein oder macht sie unveränderlich?

+0

Es wäre hilfreich, wenn Sie den Code schreiben Sie ausführen möchten. Auf welchen Wert legen Sie das Attribut fest? – lmars

Antwort

7

Ich habe eine Lösung gefunden.

Mein Problem war, dass ich nicht in der Lage war, das Attribut meiner CarrierWave-Uploader aus meiner samen.rb-Datei zu ändern.

Dies funktioniert:

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