6

我无法在载波上传器安装的属性上使用 model.update_attribute。SQL 语句不会接受该值并将 NULL 添加到占位符。如果我从模型类中删除 mount_uploader 语句,它会正常工作。我正在从控制台排除故障,并尝试在为数据库播种时添加一些属性,这阻碍了我的努力。想法?

谢谢。

更新: 相关代码:

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

我只是想从 db 种子文件中重写 :avatar 字符串,同时从 rails 控制台进行测试,如下所示: Profile.first.update_attribute(:avatar, 'foo')

当我注释掉 mount_uploader 行时,两者都有效。

添加 mount_uploader 方法会冻结字符串还是使其不可变?

4

1 回答 1

11

我找到了解决方案。

我的问题是我无法从我的种子.rb 文件中更改挂载 CarrierWave 上传器的属性。

这有效:

user.profile.update_column(:avatar, 'foobar/image.png')
于 2013-10-08T21:12:20.770 回答