将图像URL保留在身份验证墙后面

时间:2014-12-18 15:43:19

标签: ruby-on-rails-4

我正在尝试在rails中创建一个网站,其中100%的内容都在认证障碍之后。

有没有办法让图片网址也在导轨中的身份验证墙后面? 例如www.foo.com/bar.jpg也会要求您在显示图像之前登录

1 个答案:

答案 0 :(得分:1)

解决了它:

伪代码:

routes.rb中:

get '/image/:id' => 'image_container#show_image'

image containers _controller.rb:

def show_image
        image = ImageContainer.find(params[:id])  
        if #auth logic goes here
               send_file(image.path, type: image.type)
        else
                redirect_to "/no_picture_for_you"
        end
 end

image_container.rb:

  has_attached_file :image,
  path: ":rails_root/notpublic/images/:id/:basename_:style.:extension"

  def url
      "/image/#{self.id}"
  end