Ruby on rails 3 我的文件扩展名在参数列表中的什么位置
我遵循这个答案,同时试图找出如何显示位于我的应用程序目录中的图像 我已经创建了一个如图所示的控制器,将Ruby on rails 3 我的文件扩展名在参数列表中的什么位置,ruby-on-rails-3,Ruby On Rails 3,我遵循这个答案,同时试图找出如何显示位于我的应用程序目录中的图像 我已经创建了一个如图所示的控制器,将匹配行添加到routes.rb,并在测试网页中使用代码加载名为test.jpg的图像 <img src="/serve_image/test.jpg" /> 但是我收到一个错误,说找不到文件/public/images/test。 然后我去重命名了我的图像,这样.jpg就不见了,然后脚本找到了我的图像,并根据需要加载了它 知道分机去哪里了吗?我不知道如何调试这个问题。默认情况下
匹配
行添加到routes.rb,并在测试网页中使用代码加载名为test.jpg
的图像
<img src="/serve_image/test.jpg" />
但是我收到一个错误,说找不到文件/public/images/test
。然后我去重命名了我的图像,这样
.jpg
就不见了,然后脚本找到了我的图像,并根据需要加载了它
知道分机去哪里了吗?我不知道如何调试这个问题。默认情况下,Rails与动态段中的点不匹配。因此,对于这条路线:
match '/serve_image/:filename' => 'images#serve'
:filename
将只匹配它找到的第一个点。因此,/serve\u image/test.jpg
将匹配test
作为文件名,并认为您希望得到一个jpg作为响应。你需要做的是告诉路由器你想在文件名中包含点,类似这样:
match '/serve_image/:filename' => 'images#serve', :constraints => {:filename => /[^\/]+/}
这将匹配除正斜杠之外的任何内容,在params[:filename]
有关更多信息,请参阅