ruby-on-rails – 在rails控制器中获取Carrierwave上传的文件名

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在rails控制器中获取Carrierwave上传的文件名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在我的控制器中获取文件名和上传文件,以便我可以为上传文件设置默认标题(或名称),如果用户没有指定一个.我使用Carrierwave上传文件.

我的控制器创建动作如下所示:

def create
    @photo = Photo.new(params[:photo])
    @photo.user_id = current_user.id


    respond_to do |format|
      if @photo.save
        format.html { redirect_to @photo,notice: 'Photo was successfully created.' }
        format.json { render action: 'show',status: :created,location: @photo }
      else
        format.html { render action: 'new' }
        format.json { render json: @photo.errors,status: :unprocessable_entity }
      end
    end
  end

解决方法

解决方案是从carrierwave文件获取文件名,如下所示:
def create
    @photo = Photo.new(params[:photo])
    @photo.user_id = current_user.id

    @photo.name =  @photo.image.file.filename if @photo.name == ""

    respond_to do |format|
      if @photo.save
        format.html { redirect_to @photo,status: :unprocessable_entity }
      end
    end
  end

猜你在找的Ruby相关文章