6

io sono in grado di utilizzare model.update_attribute su un attributo che è montato da un uploader carrierwave. L'istruzione SQL non accetta il valore e aggiunge NULL al segnaposto. Se rimuovo l'istruzione mount_uploader dalla classe del modello, funziona normalmente. Sto risolvendo le cose dalla console e sto provando ad aggiungere alcuni attributi mentre semina il DB e questo sta ostacolando i miei sforzi. Idee?attributi Aggiornamento manuale montati da Carrierwave Uploader

Grazie.

Aggiornamento: codice rilevante:

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 

Sto semplicemente cercando di riscrivere il: stringa di avatar da un file seme db e durante il test dalla console rotaie in questo modo: Profile.first.update_attribute (: avatar, 'foo')

Entrambi funzionano quando commento la riga mount_uploader.

L'aggiunta del metodo mount_uploader congela la stringa o la rende immutabile?

+0

Sarebbe utile se si posta il codice che si sta tentando di eseguire. A quale valore stai provando a impostare l'attributo? – lmars

risposta

7

Ho trovato una soluzione a questo.

Il mio problema era che non ero in grado di alterare l'attributo montato il mio l'uploader CarrierWave dal mio file seeds.rb.

Questo funziona:

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