Ruby on rails CarrierWave:只读上载字段?

Ruby on rails CarrierWave:只读上载字段?,ruby-on-rails,ruby,ruby-on-rails-4,carrierwave,Ruby On Rails,Ruby,Ruby On Rails 4,Carrierwave,我正在尝试创建一个ActiveRecord模型,其中CarrierWave以只读方式使用,即用户使用一个文件创建一个记录,并且在创建该记录后无法更改该文件 我曾尝试在模型中将属性设置为attr\u readonly,但在RSpec中测试时,它表明该字段仍然可以更改(具体而言,比较@myclass.file.url表明,如果我尝试上载新文件,文件的位置将发生更改)。我还研究了使用验证来检查编辑操作中的文件参数是否与模型中的文件字段匹配的可能性,但这似乎也没有成功 class MyClass <

我正在尝试创建一个ActiveRecord模型,其中CarrierWave以只读方式使用,即用户使用一个文件创建一个记录,并且在创建该记录后无法更改该文件

我曾尝试在模型中将属性设置为
attr\u readonly
,但在RSpec中测试时,它表明该字段仍然可以更改(具体而言,比较
@myclass.file.url
表明,如果我尝试上载新文件,文件的位置将发生更改)。我还研究了使用验证来检查编辑操作中的文件参数是否与模型中的文件字段匹配的可能性,但这似乎也没有成功

class MyClass < ActiveRecord::Base
  mount_uploader :file, MyClassUploader
  attr_readonly :file

  validates :title, presence: true
  validates :description, presence: true
  validates :file, presence: true
end
classmyclass
我的此类迁移如下所示:

class CreateMyClasses < ActiveRecord::Migration
  def change
    create_table :myclasses do |t|
      t.string :title
      t.string :description
      t.string :file

      t.timestamps null: false
    end
  end
end
class CreateMyClasses

如何确保创建模型后,文件组件不能更改,但所有其他字段都可以更改

用户上载文件后,可以删除上载按钮为什么不在编辑表单中隐藏文件字段?