覆盖Rails上传器以播种数据库

我有一个CarrierWave rails上传器。 我想用假用户播种数据库,所以我试图用相同的种子文件添加图像。 图像在一个共同的存储空间中,所以如果我能在数据库中获取头像字符串,它们就可以工作。 当它保存用户时,虽然图像没有粘附。

# db/seeds.rb user1 = User.create :email => "test1@test.com", :password => "testing", :name => "Bob Dylan", :avatar => "v1357014344/bdylan.jpg" user1.save # IRB User.first => # > a = User.first > a.avatar = "v1357014344/bdylan.jpg" > a.save (10.7ms) commit transaction => true > a => # 

您必须按以下方式插入数据。

 File.open(File.join(Rails.root, 'test.jpg')) 

所以整个用户创建看起来像

 User.create :email => "test1@test.com", :password => "testing", :name => "Bob Dylan", :avatar => open("v1357014344/bdylan.jpg") 

相关问题

除了使用open()作为Nishant建议外,您还可以指定remote_avatar_url来手动设置远程URL。

 User.create :email => "test1@test.com", :password => "testing", :name => "Bob Dylan", :remote_avatar_url => "http://sofzh.miximages.com/ruby-on-rails/Joan_Baez_Bob_Dylan_crop.jpg" 

感谢JosephJaber在CarrierWave,Rails 3的Seeding文件上传中提出建议

我使用这种方法在seed.rb中为CarrierWave Uploader填充了一些videourl

要直接更新数据库并跳过CarrierWave:

 model[:attribute] = 'url.jpg' model.save