簡體   English   中英

在Ruby on Rails中更新CarrierWave文件(文本)

[英]Updating CarrierWave files (text) in Ruby on Rails

我已經弄清楚如何使用CarrierWave上傳文件。 我已經想出如何將這些文件加載​​到textarea進行編輯。 我的問題是:

如何在textarea中編輯CarrierWave文件后如何更新?

假設您存儲在本地磁盤上,並且您的配置如下所示

class User < ActiveRecord::Base
  mount_uploader :avatar, AvatarUploader
end

然后在你的控制器的動作中:

@user = User.find params[:id]
File.open(@user.avatar.current_path, 'r+') do |f|
   f.print params[:user][:avatar_textarea]
   f.truncate f.pos
end

我通過創建一個與正在更新的文件具有相同文件名的ruby文件來解決這個問題。 然后我用textarea內容填充這個文件。 接下來,我在正在更新的文件上調用update_attributes,將其:file屬性指向剛剛創建的文件。 更新屬性后,我刪除了我創建的文件。

我嘗試使用Tempfile,但無法找到一種方法來維護所需的文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM