我在使用载波时遇到了麻烦,但与它没有严格的关系。我有附件模型:
class Attachment < ActiveRecord::Base
attr_accessible :event_id, :file, :file_cache
belongs_to :event
mount_uploader :file, AttachmentUploader
end
属于Event模型
class Event < ActiveRecord::Base
ATTACHMENTS_LIMIT=3
attr_accessible ...
:attachments_attributes
...
has_many :attachments, :dependent => :destroy
accepts_nested_attributes_for :attachments
end
和这样的嵌套形式:
<%= f.fields_for :attachments do |builder| %>
<fieldset class="attachment">
<%= builder.file_field :file %>
<%= builder.hidden_field :file_cache %>
<%= link_to_remove_fields t("actions.delete"), builder %>
</fieldset>
<% end %>
似乎没问题,除非您遇到验证错误 - 然后所有 file_fields 都将被重置为空白值。但是有一个file_cache指向我的载波上传路径(*uploads/tmp/20121003-1959-2388-3822/Getting_Started.pdf*)。
发生验证错误时如何保护文件不丢失???任何提示将不胜感激!我已经从官方的carrierwave wiki和相关帖子中汲取了这些方法,但仍然没有运气。