我有一个控制器方法,它从客户端接收一个字符串,使用StringIO
将其转换为伪文件,并保存为Paperclip属性。
#tasks_controller
def generate
generator = StringIO.new(params[:generator])
@task.update_attribute :generator, generator
render nothing: true
end
这会将字符串作为文件保存在正确的位置,但另外将相同的文件保存在rails应用程序的根目录中的随机十六进制名称下。
以下是定义paperclip属性应保存位置的任务对象:
#task.rb
class Task < ActiveRecord::Base
has_attached_file :generator, :url => "/generators/:id/generator.js"
end