1
我有一个项目显示页正确显示文本:在EEX模板渲染IMG:协议Phoenix.HTML.Safe没有实现
<p><%= @post.body %></p>
<%= @post.title %></h1>
我想显示用户上传的照片。
我想:
<img src="<%= @post.project_pic %>"/>
返回:
protocol Phoenix.HTML.Safe not implemented for %{file_name: "pexels-photo-144322 (1).jpeg", updated_at: #Ecto.DateTime<2017-08-06 14:05:26>}
这说明我的石化公司上传并存储在数据库中。
我补充检查:
<img src="<%= inspect @post.project_pic %>"/>
按照这样的回答:
protocol Phoenix.HTML.Safe not implemented Elixir Phoenix
其中通过编译器,但只显示一个破碎图像图标。
图片如何存储?
我有这样的post.ex:
field :project_pic, Citybuilder.ProjectPic.Type
在stories.ex我:
|> cast_attachments(attrs, [:project_pic])
在最新的迁移文件
它存储为一个字符串:
add :project_pic, :string
也许这就是错误。
我不确定错误是在我的eex语法中,还是在文件结构中更深的地方。
你如何计算和存储'project_pic'?如果图像位于同一根路径中,您可能需要'<%= @ post.project_pic.file_name%>>。 – Dogbert
我更新了我的问题以包含更多信息。请参阅“如何存储图片?”如果你想知道其他什么,请问。 – RubyRube
'cast_attachments'意味着你正在使用'arc'和'arc_ecto'? – Dogbert