在file_field上设置自定义消息

时间:2014-11-26 17:38:32

标签: ruby-on-rails file-upload helper messages

我的表单上有一个file_field来上传用户的头像:

<%= f.file_field :avatar %>

问题是,无论模型是否已经具有化身,帮助者都会显示“未选择文件”消息。仅当您浏览并添加图像时,该消息才会被所选图像的名称替换。

基本上,如果用户已有图像,我想直接显示图像名称的消息。有什么想法吗?

1 个答案:

答案 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 %>