我有一个名为的模型Profile
:
has_attached_file :avatar
我正在验证它只接受图像,其中:
validates_attachment_size :avatar,:less_than => 2.megabytes
validates_attachment_content_type :avatar, :content_type => /^image\/(jpg|jpeg|pjpeg|png|x-png|gif)$/, :message => 'file type is not allowed (only jpeg/png/gif images)'
控制器动作是这样实现的:
@profile = Profile.find(params[:id])
if @profile.update_attributes(params[:profile])
redirect_to @profile, notice: "Profile was updated"
else
from_render = params[:render]
from_render = "show" if !["show","edit"].include?(from_render)
respond_to do |format|
format.html { render :action => from_render }
end
end
在视图中,我将其显示为:
<%= image_tag profile.avatar.url(:medium) %>
我允许从显示和编辑操作更改图片,因此其他(知道在发生错误时重定向到哪里)。问题是,如果我上传一个文本文件,视图将尝试呈现一个图像标签,该标签具有文本文件的 href。这会导致呈现不正确的内容。所以,现在,profile.avatar
指向文件,附件没有保存。如何回退到原始图像?