【问题标题】:Manually updating attributes mounted by Carrierwave Uploader手动更新 Carrierwave Uploader 挂载的属性
【发布时间】:2023-03-13 02:22:01
【问题描述】:

我无法对载波上传器安装的属性使用 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 方法是冻结字符串还是使其不可变?

【问题讨论】:

  • 如果您发布您尝试执行的代码将会很有帮助。您尝试将属性设置为什么值?

标签: ruby ruby-on-rails-3 activerecord carrierwave rails-activerecord


【解决方案1】:

我找到了解决方案。

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

这行得通:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    相关资源
    最近更新 更多