Manually updating attributes mounted by Carrierwave Uploader

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-23 09:27:52

问题


I am unable to use model.update_attribute on an attribute that is mounted by a carrierwave uploader. The SQL statement wont accept the value and adds NULL to the placeholder. If I remove the mount_uploader statement from the model class it works as normal. I am troubleshooting things from the console and trying to add some attributes while seeding the DB and this is thwarting my efforts. Ideas?

Thanks.

Update: Relevant 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

I am simply trying to rewrite the :avatar string from a db seed file and while testing from the rails console like so: Profile.first.update_attribute(:avatar, 'foo')

Both work when I comment out the mount_uploader line.

Does adding the mount_uploader method freeze the string or make it immutable?


回答1:


I found a solution to this.

My issue was that I was not able to alter the attribute mounted my the CarrierWave uploader from my seeds.rb file.

This works:

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


来源:https://stackoverflow.com/questions/18950042/manually-updating-attributes-mounted-by-carrierwave-uploader

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!