ruby-on-rails - 在Rails Controller 中获取Carrierwave上传的文件名

标签 ruby-on-rails file-upload carrierwave

我需要在 Controller 中获取和上传文件的文件名,以便如果用户未分配文件,则可以为上传文件设置默认标题(或名称)。我使用Carrierwave上传ing文件。

我的 Controller 创建 Action 如下所示:

  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

最佳答案

解决方案是从载波文件中获取文件名,如下所示:

  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, 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

关于ruby-on-rails - 在Rails Controller 中获取Carrierwave上传的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20933619/

相关文章:

ruby-on-rails - rails : generating URLs for actions in JSON response

php - XAMPP 如何增加 upload_max_filesize

javascript - 单击打开文件上传对话框

ruby-on-rails - 删除没有固定长度的字符串的第一部分

ruby-on-rails - Ruby on Rails - 登录

mysql - 在 Ruby on Rails 中,更新的 gem 导致以前通过 Capybara 测试的 mysql 数据库回滚

java - 如何使用JSP/Servlet将文件上传到服务器?

ruby-on-rails - Windows 10 上的 ffmpegthumbnailer [Ruby on Rails]

ruby-on-rails - 使用carrierwave和uploadify时上传错误

ruby-on-rails - 找不到有效的 gem 'mysql2-0.3.18.gem'