キャリアウェーブの使用に問題がありますが、厳密には関係ありません。私はアタッチメントモデルを持っています:
class Attachment < ActiveRecord::Base
attr_accessible :event_id, :file, :file_cache
belongs_to :event
mount_uploader :file, AttachmentUploader
end
イベントモデルに属する
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_fieldが空白の値でリセットされます。しかし、私のcarrierwaveアップロードパス(* uploads / tmp / 20121003-1959-2388-3822 / Getting_Started.pdf *)を指すfile_cacheがあります。
検証エラーが発生したときにファイルが失われないようにするにはどうすればよいですか?どんなヒントでも大歓迎です!私は公式のcarrierwavewikiと関連する投稿からそれらのハウツーを吸い上げましたが、それでも運がありません。