[gem] 常用模組套件
tags: gem
, ruby
, package
, Rails
Package | 描述 | 其他說明 |
---|---|---|
Devise | 驗證使用者 | 使用者認證(ihower), Ruby on Rails 實戰聖經(ihower) |
Rolify | 管理使用者角色 | ... |
enumerize | 方便取得資料庫內容 | ... |
taggable | ... | ... |
act_as_list | 排序列表中的物件 | ... |
AASM | 流程管理 | ... |
carrierwave | 圖片上傳處理 | ... |
chartkick | 圖表繪製 | 在 Rails 中可以同時使用 chart.js, google charts 和 High Charts |
gem install gem_name
bundler
nokogiri
rails
pg # postgreSql
# Paginator for Rails 4+
gem 'kaminari', '~> 1.0', '>= 1.0.1'
# Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support
gem 'enumerize', '~> 2.0', '>= 2.0.1'
# Flexible authentication solution for Rails with Warden
gem 'devise', '~> 4.3'
# 讓 Rails Console 好看很多
gem 'pry-rails', '~> 0.3.4'
# Supporting gem for Rails Panel (Google Chrome extension for Rails development)
gem 'meta_request', '~> 0.4.3'
# help to kill N+1 queries and unused eager loading.
gem 'bullet', '~> 5.5', '>= 5.5.1'
# A static analysis security vulnerability scanner for Ruby on Rails applications
gem 'brakeman', require: false
# rspec command for spring
gem 'spring-commands-rspec'
kaminari
製作自動分頁功能。後面的 per(5)
就是「每頁有 5 筆資料」的意思:
# ./app/controllers/admin/coupons_controller.rb
# controller
def index
# 原本是 @posts = Post.all
@posts = Post.includes(:user).page(params[:page]).per(5)
# 透過 AJAX 更新
respond_to do |format|
format.html
format.js
end
end
打開相對應的 view,在想要加上分頁的地方加上 <%= paginate @posts, remote: true %>
。
建立一支相對應的 JS 檔
// .app/views/admin/events/show.js.erb
document.querySelector('#order-list').innerHTML =
"<%= escape_javascript(render 'orders', orders: @orders) %>";
enumerize
可以在 Rails 中更方便取用 enumerize 的資料。