我正在使用CarrierWave和嵌套窗體寶石。在Carrierwave github頁面(https://github.com/jnicklas/carrierwave)上使用標題爲「使上傳在表單重新顯示中工作」的部分,我能夠成功存儲緩存,以便即使用戶犯了錯誤,文件被保存。當我第一次點擊該頁面並點擊「上傳文件」時,它將起作用,並顯示文件的名稱以及指示已上傳文件類型的小縮略圖圖標。CarrierWave和嵌套窗體Gem重新顯示:: HTML文件輸入圖標
但是,重新顯示時文件輸入按鈕爲空,圖標消失。但是我知道它在那裏,因爲如果我再次提交有效信息並單獨保留文件輸入按鈕,它會創建一個新資源。這是我的代碼片段。
<%= nested_form_for @resource, :html=>{:multipart => true } do |f| %>
<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>
<%= f.fields_for :attachments do |attachment_form| %>
<p>
<%= attachment_form.label :file %>
<% if !attachment_form.object.file.path.blank? %>
<% file_info = get_cache_file_info attachment_form.object.file.path %>
<%= image_tag(File.join('/tmp/cache/', file_info[:folder])) #THIS DISPLAY CORRECTLY %>
<% end %>
<%= attachment_form.file_field :file %>
<%= attachment_form.hidden_field :file_cache %>
</p>
<%= attachment_form.link_to_remove "Remove this attachment" %>
<% end %>
<%= f.link_to_add "Add attachment", :attachments %>
<p><%= f.submit %></p>
<% end %>
我想知道如果我必須編輯HTML文件輸入來顯示圖標或是否有其他一些Rails方式來照顧這一點。此外,image_tag正確顯示,但對於我的應用程序有用戶上傳文本文件,所以圖像不是很有幫助。
在此先感謝!
更新 我也嘗試設置「input」標籤的價值,像這樣:
<%= attachment_form.file_field :file, :value => "#{File.join(file_info[:folder], '/',attachment_form.object.file.identifier)}" %>
而且也不能工作。 「輸入」標記的值設置正確,但仍顯示爲「未選擇文件」
我有同樣的問題。你解決了這個問題嗎? – Dercni
對不起......這是3年前,管理層放棄了這個項目。 – schmudu
所以我不記得我是否能夠解決這個問題,或者如果這是我正在處理的一個懸而未決的問題 – schmudu