Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在不使用回形针或任何gem的情况下显示保存在数据库中的blob的内容?_Ruby On Rails_Blob - Fatal编程技术网

Ruby on rails 如何在不使用回形针或任何gem的情况下显示保存在数据库中的blob的内容?

Ruby on rails 如何在不使用回形针或任何gem的情况下显示保存在数据库中的blob的内容?,ruby-on-rails,blob,Ruby On Rails,Blob,由于我是Rails新手,我非常渴望从数据库中显示blob的内容 我已经试过了: #controller: def show_image @user = User.find(params[:id]) send_data @user.image, :type => 'image/png',:disposition => 'inline' end #views: <%= image_tag url_for(:controller => "mycontroller",

由于我是Rails新手,我非常渴望从数据库中显示blob的内容

我已经试过了:

#controller:
def show_image
   @user = User.find(params[:id])
   send_data @user.image, :type => 'image/png',:disposition => 'inline'
end
#views:
<%= image_tag url_for(:controller => "mycontroller", :action => "show_image", :id => @user.id) %>
#控制器:
显示图像
@user=user.find(参数[:id])
发送_data@user.image,:type=>'image/png',:disposition=>'inline'
结束
#观点:
“mycontroller”,:action=>“show_image”,:id=>@user.id)%>
但这就是结果:


我该怎么办?

有关使用
image\u标记显示图像的更多信息,请查看

在您的例子中,您似乎拥有存储在
users
表中的图像名称(与特定用户关联的某种图像)。您需要在
image\u标记中调用该用户属性,如下所示:

Rails将查看存储在数据库中的图像名称,并尝试在您的
app/assets/images/
目录中找到它,因此请确保您已将图像存储在那里。例如,如果我有一个用户使用“butterfly.jpg”作为其
image
值,Rails将期望文件
app/assets/images/butterfly.jpg
存在


这就是你需要做的一切-不需要带控制器和
发送数据到其中,除非你想做的是创建一个链接,允许有人通过点击它来下载图像。

在rails控制台中,如果你运行
User.find(1).image
你得到了什么?你到底想做什么?显示图像?将
send_data
放入控制器将允许用户单击链接并下载图像。它发送二进制数据,无法使用
图像\标签
。是的,显示一幅图像。我最后使用了回形针,谢谢@sixty4bit。