iThome online | iThome Blog | iThome周刊訂閱

載入中...

twtw

IT邦初學者
9級

[RoR] 刪除功能及顯示方式的變化

把檔案大小及日期,用口語化來說是多少 KB, MB,而不是說多少 bytes;也不說幾年月日時分上傳,而以多久前上傳該檔;好像是 web2.0 趨勢的呈獻風格,RoR簡單的語法就可完成。



收到書籤:發佈到twitter      
分享時間:2008-09-28 05:12:38

▼ ADVERTISEMENT ▼

分享內容(
6

建立刪檔動作

  def rmfile
   @dlfile = Upfile.find_by_filetoken(params[:filetoken])
# 若沒該檔就中止動作,返回首頁
   if @dlfile.nil?
    flash[:notice] = "no such file"
    redirect_to :action => 'index'
    return
   end
# 若無上述中止動作則開始將刪檔及從資料庫中移掉該項目
     File.delete("/home/ironman/test1/FILES/#{@dlfile.filetoken}")
     @dlfile.destroy
     flash[:notice] = "#{@dlfile.filename} 已順利刪除!"
     redirect_to :action=> 'index'
  end

將刪除的連結加到 index 之中
<%= link_to '刪除', {:action=> 'rmfile', :filetoken => file.filetoken}, :confirm => "真的要刪?" -%>


這樣就可以有完整的上傳、下載、刪除的基本動作,而且檔名也不會有編碼不 match 或重覆的問題。

美化顯示格式
看到的結果會是如此

有關檔案的 table 列表部份是複製 CSS table Gallery 裡的 Golden style css 語法。
而將 filetype 的欄位拿掉,因該欄位是為了send_file時所用。而其中比較特別的是檔案大小是以KB,MB來顯示,上傳時間以多少小時或分鍾之前來顯示,刪除的動作的連結改用以垃圾桶的圖型來顯示,主要改變的語法如下:
<td><%= number_to_human_size(file.size) -%></td>
<td><%= distance_of_time_in_words_to_now(file.created_at, include_seconds = true) -%>之前</td>
<td><%= link_to image_tag("del.gif", :alt => '刪除', :border=>0), {:action=> 'rmfile', :filetoken => file.filetoken}, :confirm => "真的要刪?" -%></td>

是分別參考以下的語法即可做出來:
檔案大小語法:http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M001669
日期語法:http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#M001712
圖型語法:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#M001686

將建置到目前為止的程式碼及css放在下列位置:
http://upload.singernew.org/dl/d14-index_html_erb.txt
http://upload.singernew.org/dl/d14-layouts_upfile_html_erb.txt
http://upload.singernew.org/dl/d14-_listitem_html_erb.txt
http://upload.singernew.org/dl/d14-upfile_controller_rb.txt
http://upload.singernew.org/dl/d14-upfile_css.txt
而其中的 index.html.erb 內容中,將一些內容用
<%= render :partial => 'listitem' %>
此語法,寫到 _listitem.html.erb 之中,所以才會多此檔案。

後續的步驟將探討如何區分單位內外來的範圍,再建置可以根據範圍來區分上傳下載及密碼相關的機制。

[RoR] 刪除功能及顯示方式的變化
twtw( IT邦初學者9級 )
2008-10-02 14:06:48
將這個已建置好的實際可運作的網站,簡稱單位用暫存系統,放置在:
http://alpha.tagbible.net/upfile
單位外可以上傳檔案,只有單位內可下載,
也可以設一下密碼,看看會出現怎樣的狀況;
有設密碼的,也可從單位外去刪該檔案。
測試時千萬不要放敏感性的資料測試喔…
當然也會看到一些裡面放出來可以下載的資料,
看看那個 sexy_layouts.zip 是什麼東西 sexy 喔…

回應

請填寫您的回應,長度限為1,000個字,回應不計點數,也不限使用次數



 

檢舉違規

違規事項:

*補充檢舉理由(可省略),字數不可超過100字

推薦

推薦理由:


*給回答者的鼓勵(可不填),字數不可超過100字

▼ ADVERTISEMENT ▼

熱門標籤

 cisco   crystal   exchange   it   java   javascript   linux   m-power   mail   microsoft   msnlib   msnp15   msnsdk   msn機器人   mysql   nas   oracle   outlook   pmi   pmp   raid   report   sap   server   smartquery   sql   vista   windows   xp   倍力   倍力資訊   免費軟體   國際專案管理師   報表   專案管理   微軟   有話大聲說   活動   省錢   網路   網路儲存   網路管理   網頁安全   網頁設計   資安   資料庫   資訊安全   防毒軟體   2003   2008