我的图像路线有问题,因为它没有以params结束图像文件。
这是我的路线:
match '/photographer/image/:id/:filename' => 'application#photore'
我的控制员:
def photore
redirect_to "http://s3-eu-west-1.amazonaws.com/mybucket/photographer/image/#{params[:id]}/#{params[:filename]}"
end
我需要文件,因为其他亚马逊S3不会加载图像。
答案 0 :(得分:4)
aNoble朝着正确的方向前进,Rails格式处理可能正在吃延伸,但也可能因为它不是.html
,.js
或其他任何一个而丢弃它它理解的扩展。尝试在路线:filename
上设置一些约束:
match '/photographer/image/:id/:filename' => 'application#photore', :constraints => { :filename => /.*/ }
这应该允许将扩展名保留为params[:filename]
的一部分。
答案 1 :(得分:3)
假设您正在运行Rails 3.1,我相信您正在寻找的是params[:format]
。此功能从3.0更改为3.1,但似乎没有很好地记录。
试试这个:
def photore
redirect_to "http://s3-eu-west-1.amazonaws.com/mybucket/photographer/image/#{params[:id]}/#{params[:filename]}.#{params[:format]}"
end
或者您应该能够将:format => false
传递给match
方法并保持photore
方法不变:
match '/photographer/image/:id/:filename' => 'application#photore', :format => false