好用的 Gem 列表
本頁用于介紹 Ruby 社區(qū)里面那些特別熱門的 Gem ,以下 Gem 可以在 rubygems.org 找到义辕。
實用的 RubyGems 排名站點 www.ruby-toolbox.com
前端常用
bootstrap
來自 Twitter 的 Bootstrap,是一套完成的前臺 CSS 框架懈词。 以簡潔,優(yōu)雅著稱于世块茁。被無數(shù)攻城獅所青睞佣渴,又讓無數(shù)程序猿審美疲勞辫狼。
font-awesome-sass
icon圖標
simple_form 和 Formtastic
Rails 為我們帶來和一改傳統(tǒng)的表單構(gòu)件方式,但是經(jīng)過實際的使用观话,我們漸漸發(fā)覺這樣依然還是不夠 “敏捷”予借,我們需要更加簡便并具有更細致規(guī)范的表單,所以有了 Formtastic 频蛔,它用起來比 Rails 默認的 form 更加簡潔灵迫,但是卻具有更多的功能,你可以為每個字段設(shè)定 help-text 放到文本框下面晦溪,并可以走 I18n 的方式設(shè)置語言瀑粥,具體參見 Railscasts 上面對于 Formtastic 的介紹。而 simple_form 和 Formtastic 功能類似三圆,但它的寫法還要簡單一些狞换。
ClientSideValidations
現(xiàn)在越來越多網(wǎng)站為了改善用戶體驗,使用 JavaScript 來進行客戶端驗證舟肉。對于程序員來說修噪,也因此增加多一份工作。而往往客戶端的驗證邏輯跟服務端的驗證邏輯幾乎一樣路媚,如果要另外再寫一次驗證代碼黄琼,實在不夠 DRY,client_side_validations 正是為解決此問題要出現(xiàn)整慎。client_side_validations 會讀取服務端的驗證邏輯并生成對應的客戶端驗證邏輯(依賴 jQuery)脏款,讓你幾乎不用增加任何前端代碼就可實現(xiàn)客戶驗證。
bootstrap-datepicker-rails
bootstrap風格的日歷
select2-rails: 下拉提示select框(支持前端和后端)
會員系統(tǒng)常用
Devise
用于快速構(gòu)建用戶功能裤园,如:注冊撤师,登陸,個人設(shè)置拧揽,找回密碼... 同時 Ruby 社區(qū)有各類和賬號體系的庫可以很容易和 Devise 打通剃盾。
RuCaptcha
圖片驗證碼,安全淤袜、簡單万俗、易用,無依賴饮怯。
rolify
Very simple Roles library without any authorization enforcement supporting scope on resource obje
CanCanCan
一些應用中會用到為不同用戶設(shè)定不同功能的權(quán)限,你可以試試 CanCanCan 這個 Gem 他可以幫你制定一套完善的方案嚎研,Railscasts 上有使用介紹蓖墅。
如果 Devise 一樣库倘,CanCanCan 在 Ruby 社區(qū)也是非常流行,所以和它有關(guān)的實現(xiàn)非常多论矾,你能很容易找到資料教翩。
OmniAuth
如果你需要在項目中實現(xiàn)三方平臺(如: Twitter, Facebook, 新浪微博, 騰訊 QQ)賬號登陸的支持,那你需要用上它贪壳。
omniauth-weibo-oauth2
omniauth-qq-connect
omniauth-wechat-oauth2
Doorkeeper
前面說了 OmniAuth 介入 OAuth 2 的服務饱亿,有時候你可能需要自己建立一個 OAuth 2 服務,作為提供商闰靴,這個時候 Doorkeeper 可以幫到你彪笼。
china_sms: 短信平臺接口, https://github.com/saberma/china_sms
wechat-rails: 幫助開發(fā)者方便地在Rails環(huán)境中集成微信公眾平臺提供的所有服務
rqrcode:生成二維碼
內(nèi)容功能常用
will_paginate 和 Kaminari
分頁蚂且,幾乎所有 Rails App 都在用, 其中 will_paginate 比較老, 應用案例較多, kaminari 更新, 性能和兼容性更好
Carrierwave 和 Paperclip
這兩個都是上傳組件配猫, Paperclip 是老牌產(chǎn)品了,也是幾乎絕大多數(shù)項目都有在用它杏死,它可以幫你處理上傳圖片泵肄,裁減,定義不同的圖片尺寸淑翼,幾乎很完美腐巢。而 Carrierwave 是后起之秀,功能和 Paperclip 差不多玄括,但它還可以管理除圖片之外的東西冯丙,而且靈活性更高( ruby-china 就是用它)。國內(nèi)的各大云存儲服務都已經(jīng)有了 Carrierwave 的支持惠豺,例如 carrierwave-aliyun, carrierwave-upyun银还。
WiceGrid
表格控件,針對 ActiveRecord洁墙,超級強大蛹疯,支持任意字段排序,過濾热监,具體看它的 Demo.
elasticsearch-rails
實現(xiàn)全文搜索或搜索有關(guān)的功能捺弦,目前要數(shù) Elasticsearch 最火,它也有 Ruby 的實現(xiàn)孝扛。
Ransack
常用的搜索插件
social-share-button
分享功能
ancestry
樹形結(jié)果的方式存儲列吼,可以看作是一對多、多對多的擴展
by_star
這是一個輔助 ActiveRecord 的組件苦始,讓你可以簡單的實現(xiàn)按某年寞钥,某月,某日陌选,或者星期幾理郑,來查詢數(shù)據(jù)蹄溉,用起來非常簡單,省下麻煩的條件組合您炉,此外柒爵,它還可以查詢上一篇,下一篇類似的功能赚爵。
lazy_high_charts
當前繪圖 JS 庫中 Highcharts 非常優(yōu)秀棉胀,rubyist 使用這個 gem 來管理和編寫需要的圖。
rmagick
圖片處理確保安裝了ImageMagick冀膝,rmagick是 ImageMagick的中間件唁奢,用于對圖片進行切割等操作。mini-magick 穩(wěn)定畸写,占用內(nèi)存小驮瞧,但是功能比rmagick少
acts_as_list
給model中的對象進行排序記錄在position字段中
chinese_pinyin
轉(zhuǎn)化漢字為拼音 eg: Pinyin.t("中國") => "zhongguo"
acts-as-taggable-on
管理標簽的插件
spreadsheet
操作電子表格
china_city
省市區(qū)級聯(lián)
aasm
ruby狀態(tài)機
awesome_nested_set
Model多層類別
內(nèi)容輸入
redcarpet
Markdown標記語言
后臺管理
active_admin
后臺管理框架
部署
capistrano
項目自動化部署
開發(fā)測試常用
RailsSettingsCached
項目經(jīng)常會有一些配置信息,你需要一個庫幫你管理枯芬。
annotate
在model類的頂部或者底部论笔,插入數(shù)據(jù)庫表的描述,方便查看
faker
生成假數(shù)據(jù)
pry
簡單強大的調(diào)試工具, 輕量級的工具. 直接在終端調(diào)試方便又直接
Better Errors
它用一個更好的千所,更有用的錯誤頁替換標準的 Rails 錯誤頁面狂魔,對 Rack middleware 也同樣有效∫担·Railscasts 也有相應的介紹最楷。
Seed Fu
強大的 seed
Grape
隨著 Mobile App 的增多,很多時候我們在做用 Rails 做 API Base 項目時待错,rails 自帶的 C 和 V 層顯得過于繁雜籽孙,grape 可以幫助我們快速的構(gòu)建和 Rails 完美融合的 API 接口。
Faraday
HTTP Client 支持多種方式
rails_best_practices
編寫代碼總有方圓火俄,費心費力寫文檔犯建,還不如用這個工具來控制代碼質(zhì)量。
daemon-spawn
將一些事情作為 daemon 來啟動瓜客,可以類似 Debian 的 service foo start 比如 用來管理 Resque 的啟動和重啟适瓦,會變得很簡單。
rest-client:Http客戶端
生產(chǎn)運維性能常用
Whenever
Linux 里面有 Cron 可以幫助我們定期執(zhí)行一些任務谱仪,但是 Cron 手動寫起來很是麻煩玻熙,尤其是前面時間周期的定義, Whenever 可以幫助我們用更人性化的方式編寫 Cron 任務疯攒,具體參見 Railscasts 上面關(guān)于 Whenever 的介紹嗦随。
Sidekiq, Resque 和 Delayed_job
有時候一些任務的執(zhí)行會很慢,而這些任務我們并不要求需要馬上返回結(jié)果 (比如:發(fā)送郵件敬尺,生成圖片縮略圖)枚尼,那我們可以選擇將這些任務放到后臺執(zhí)行肌毅,以便于頁面不會長時間等待執(zhí)行。
god
Ruby 進程監(jiān)控工具
second_level_cache
ActiveRecord 二級緩存插件姑原,裝上他你可以無縫的實現(xiàn)對 ActiveRecord 數(shù)據(jù)的二級緩存。
paper_trail
記錄model數(shù)據(jù)的變化
爬蟲常用
Nokogiri
采集數(shù)據(jù)是我們需要解析復雜的 HTML 結(jié)構(gòu)呜舒,從中獲得需要的數(shù)據(jù)锭汛,Nokogiri 可以幫助我們完美的處理不同網(wǎng)頁上面不同的 HTML 結(jié)構(gòu),并且有很好的編碼處理能力袭蝗,用它你不用擔心頁面是 GB2312 還是 GBK 還是 UTF-8唤殴,它都很很好的處理,解析結(jié)構(gòu)可以用類似 jQuery 的 CSS Selector 的方式查找到腥,很是方便朵逝。曾經(jīng)用過 Ruby 的好幾個類似插件,最終發(fā)現(xiàn) Nokogiri 才是最好的乡范。
SEO優(yōu)化
sitemap_generator
生成網(wǎng)站的sitemap.xml文件
參考文章
ruby china 推薦 Ruby Gem 列表
rails常用插件
rubyChina 帖子回復