我的表单上有一个file_field来上传用户的头像:
<%= f.file_field :avatar %>
问题是,无论模型是否已经具有化身,帮助者都会显示“未选择文件”消息。仅当您浏览并添加图像时,该消息才会被所选图像的名称替换。
基本上,如果用户已有图像,我想直接显示图像名称的消息。有什么想法吗?
答案 0 :(得分:0)
我确定您以任何方式保存上传的文件(载波,回形针等)。
所以你知道你是否已经有了头像
如果你有一个,显示文件名甚至是拇指,如果没有,请显示一个注释。
但你无法避免&#34;没有选择文件&#34;消息因为它(也就是浏览器)sais:
使用此POST没有选择要上传的文件。
你最终会得到像:
这样的东西<%- if f.object.avatar.present %>
Known Avatar: <%= image_tag f.object.avatar.url(:thumb) %>
<%- else %>
no Avatar uploaded yet
<%- end %>
<%= f.file_field :avatar %>
备注:
我使用拇指网址生成了carrierwave的语法。它可能会随着其他附件宝石而变化
我不知道您的表单对象,这就是我使用f.object
的原因。如果它是@user
,您可以简化它:
<%- if @user.avatar.present %>
Known Avatar: <%= image_tag @user.avatar.url(:thumb) %>
<%- else %>
no Avatar uploaded yet
<%- end %>
<%= f.file_field :avatar %>