如何显示用户上传的静态html文件

时间:2015-06-04 02:25:48

标签: ruby-on-rails

用户可以在我的网站上传静态html文件。

我用回形针存储了文件。

但是如何通过点击链接在新窗口中显示html而不下载它。

那就是说。每个用户都可以上传 HTML格式

的简历文件

然后我们可以点击= User.find_by_id(ID).resume.url

查看简历

但我不想下载html文件。

我想在当前窗口或iframe中打开一个新窗口或将其显示

我怎么能这样做?

感谢〜

1 个答案:

答案 0 :(得分:1)

这实际上取决于你如何储存它们:

  1. 如果将HTML存储在数据库中,则可以执行以下操作:

    • 添加路线:

      get '/resume/:id' => 'resume#show'
      
    • 创建一个控制器:

      class ResumeController < ApplicationController
        def show
          render html: resume_html(params[:id]).html_safe
        end
      
        private
      
        def resume_html(id)
          # here you should return your resume HTML by either
          # just returning a string
          "<h1>Resume</h1>"
          # ... or reading it from a file (this assumes UTF8 encoding)
          Paperclip.io_adapters.for(User.find_by_id(id).resume).read.
            pack('C*').force_encoding('utf-8')
        end
      end
      
  2. 如果您将HTML文件存储在#{Rails.root}/public等公共场所的某个位置,那么只需在控制器中发出重定向(不要忘记添加路径):

    class ResumeController < ApplicationController
      def show
        redirect_to resume_path(params[:id])
      end
    
      private
    
      def resume_path(id)
        # do whatever you need to return resume URL/path
      end
    end
    
  3. 希望这有帮助!