Rails 2纸夹版本2.3.3 ruby​​ 1.9.2存储图像名称,单引号和双引号更改原始名称

时间:2014-04-01 14:13:16

标签: ruby-on-rails ruby plugins paperclip

我正在使用rails 2应用程序并使用带有2.3.3版本的paperclip插件。

在存储名称为 abc'" .jpg 的图片时,它会在数据库中存储为" .jpg

帮我保存原始文件名或者至少通过abc.jpg重命名文件并删除通配符

1 个答案:

答案 0 :(得分:0)

在保存记录之前,添加以下约束:

 @model_name.image_file_name = @model_name.image_file_name.gsub(/['"]/,"")

@model_name替换为您要保存的实例变量。

因为,您还没有与模型详细信息共享相关代码。我将分享我在我的应用程序中测试的示例:

例如:

对于具有名为Pin的Paperclip附件属性的模型image。编写PinsController createupdate操作,如下所示:

  def create
    @pin = Pin.new(params[:pin])
    @pin.image_file_name = @pin.image_file_name.gsub(/['"]/,"")       
    @pin.save
    .....
    .....
  end

  def update
    @pin = Pin.find(params[:id])
    @pin.image_file_name = @pin.image_file_name.gsub(/['"]/,"")       
    @pin.update_attributes(..)
    .....
    .....
  end

.gsub(/['"]/,"")会从上传的文件名中删除不需要的'"。如果除'"之外还有其他任何外卡,请在gsub调用中添加。