use*_*798 10 ruby-on-rails ruby-on-rails-3 carrierwave
当我通过Carrierwave提交图像,并且缺少一个字段(即标题)时,将显示缓存的图像...
<% if @post.avatar? %>
<%= image_tag @post.avatar_url, :style => "width:300px" %>
<%= f.hidden_field :avatar_cache %>
<%= @post.avatar_url %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但是,:avatar_cache字段为空.当我重新提交表单时,没有任何图像属性向前移动,所以我必须重新选择图像.
问题与此类似.CarrierWave在表单重新显示后没有保存上传,但没有答案.
怎么了?谢谢.
对我来说,问题是我有
accepts_nested_attributes_for :avatars, allow_destroy: true, reject_if: lambda { |avatar| avatar[:file].blank? }
Run Code Online (Sandbox Code Playgroud)
所以我拒绝了该文件,因为该文件不在那里
重要的是要注意文件本身不会持久,而只是文件缓存.这就是为什么carrierwave 文档建议:
向用户显示文件已上传可能是一个好主意,在图片的情况下,小缩略图将是一个很好的指标:
Ken*_*nny -1
尝试填充 avatar_cache 的值,以便当验证失败时,它将以以下形式预先填充:
<%= f.hidden_field :avatar_cache, :value => @post.avatar_cache %>
Run Code Online (Sandbox Code Playgroud)
当多次重新加载同一表单时(即验证多次失败时),这似乎对我有用。我认为他们在文档中遗漏了这一点。
| 归档时间: |
|
| 查看次数: |
3266 次 |
| 最近记录: |