傑克達與瑞兒絲的大小事

快速筆記整理網站開發上碰到的各種技巧和問題,免得年紀大忘光,至少還有一個地方可以查找

Category Archives: Gem 檔資訊

擴展 Paperclip 加入 hash 目錄參數,自訂 :path 和 :url

Paperclip 是 Rails 的一個上傳圖片插件,它可以很方便的幫助我們實現上傳圖片和裁剪圖片的功能。在安裝完 Paperclip 後,Paperclip 會有一組預設指定圖片顯示和存放的路徑,如下:

:url => "/uploadfiles/:class/:attachment/:id/:basename/:style.:extension",
:path => ":rails_root/public/uploadfiles/:class/:attachment/:id/:basename/:style.:extension"

但是因應專案的需求不同,你可能會要重新調整這組存放和顯示的路徑設定,例如,針對上傳的圖片會依照使用者放到對應的目錄下,所以我們需要在路徑加上使用者 ID,如下:

:url => "/uploadfiles/:user_id/:class/:attachment/:id/:basename/:style.:extension",
:path => ":rails_root/public/uploadfiles/:user_id/:class/:attachment/:id/:basename/:style.:extension"

這時該怎麼做呢?

實作方式:

1. 建立 config/initializers/paperclip_extensions.rb,加入以下程式碼

Paperclip.interpolates :user_id do |attachment, style|
return current_user.id
end

2. 修改 model 中 Paperclip 定義的 :path 和 :url 路徑

:url => "/uploadfiles/:user_id/:class/:attachment/:id/:basename/:style.:extension",
:path => ":rails_root/public/uploadfiles/:user_id/:class/:attachment/:id/:basename/:style.:extension"

參考文章:

https://github.com/thoughtbot/paperclip

http://stackoverflow.com/questions/4041373/paperclip-custom-path-and-url

http://www.oschina.net/question/54100_24721

廣告

設定 Capistrano deploy 保留的 release 數量

Capistrano 預設保留的數量是 5 個,但如果你想保留更少的話,可以這樣做

實作方式:

1. 開啟 capistrano 的 deploy.rb 設定檔,加上

set :keep_releases, 1

其中 1 表示你要保留的 release 數量

2. 設定在執行完 deploy 操作後,馬上清理 release,可在文件最後加上

after "deploy:update", "deploy:cleanup"

3. 另外你也可以透過 command line 下達指令來控制要保留的 release 數量,如下

bundle exec cap deploy:cleanup -s keep_releases=1

參考文章:

http://stackoverflow.com/questions/2121957/capistrano-clean-up-old-releases

http://geoff.evason.name/2009/03/27/setting-a-capistrano-variable-from-the-command-line/

查詢遠端的 gem 檔

如果想要知道查詢目前有哪些 gem 檔可用,除了可以利用 The Ruby Toolbox 這個網站查找之外

可以透過 gem search -r 指令來找尋目前遠端上符合關鍵字的 gem 檔, 如:

$ gem search -r ckeditor