轨道上的红宝石 - 如何询问回形针是否要上传新文件?



我想在第一次上传图像时对其进行一些处理。可以在不更新图像的情况下更新模型,我想避免在这些情况下进行额外的处理。如何编写检查以仅在图像是图像(例如被替换)时处理图像?

像这样:

def update
  @model = Model.find(params[:id])
  @model.process_image if @model.image_is_different_from_existing?
  ...
end

如果您上传的照片具有唯一名称,则有一种方法,假设回形针属性名称为image,回形针会创建一个名为image_file_name的列,在保存之前,您可以检查数据库中存在的图像文件名是否与您正在上传的图像文件的名称匹配。我已经实现了这样的东西,下面是代码片段

product_images = product.product_attachments.pluck(:photo_file_name)
unless product_images.include?("name_of_the_image_i_am_uploading")
  product.product_attachments.create!(:photo => File.open("/home/rajdeepb/Photo/#{data_array[1]}")) if all_images.include?("/home/rajdeepb/Photo/#{name_of_the_image_i_am_uploading}")
end

这可能不是完美的解决方案,但可能对您有所帮助

我编写了一个解决方案,用于在updatecreate方法中查找相关参数。

像这样:

用户.rb

def attachments
  %w(banner footer logo)
end

users_controller.rb

def new_resources?
  attaching = []
  @user.attachments.each do |a|
    attaching << a if params[:user][a].present?
  end
  return true unless attaching.empty?
end
def attaching
  []
end
def update
  ...
  if @user.request_necessary? && new_resources?
    action_response << "Server updated: new #{attaching} uploaded."
    redirect_to users_path, notice: action_response.join(' ')

相关内容

  • 没有找到相关文章

最新更新