2011-05-25 50 views
0

我有一個要求下載PDF文件並單擊鏈接保存它。該div有2個鏈接「查看」和「創建PDF」。在點擊「創建PDF」鏈接時,它應該創建PDF,並將其保存在服務器的文件夾中,並將其作爲下載文件。我現在正在這樣做。問題是我必須更新div,這樣如果在該位置有任何文件,點擊「創建PDF」鏈接,「查看」按鈕將可見。即如果沒有文件,「查看」鏈接將不存在,並且點擊「創建PDF」鏈接時,除了保存和下載文件之外,它還應該更新顯示「查看」鏈接的div。請求下載並更新div

我使用PrinceXML生成PDF,這裏是我現在使用的

def create_pdf 
    user = User.find(params[:id]) 
    data = make_pdf("/scans/create_pdf", user.scan_name.to_s + '_DA_FORM_7425.pdf', true) 
    File.open(user.pdf_file_path, 'w') { |f| f.write data } 
    send_file user.pdf_file_path, 
      :type   => 'application/pdf', 
      :disposition => 'attachment' 
end 

,並在視圖代碼

<% if File.exists?(user.merge_file_path) %><%= link_to "View", "/scans/view/#{user.id}" %> | <% end %> 
<%= link_to "Create PDF", "/scans/create_pdf/#{user.id}"%> 

回答

1

更簡單的解決辦法是把「查看」鏈接一個div,如果File.exists將其設置爲無顯示?返回false。
在其他鏈接調用javascript的onclick事件中,取消隱藏「View」div。如果您正在使用jQuery只是使用$('#div_id').show()

另一種方法是使用ajax調用,返回鏈接的html,並用該html更新相應的div。
http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html