在 active_admin 中使用 select2

在試著用 rails 建立自己的部落格時,需要在 active_admin 使用的後台建立 post 並使用 select2 建立 tags。
然而,當我試著用正常方式處理時,卻一直跑出 TypeError: $(...).select2 is not a function 的錯誤…


後來發現,在前台使用 select2 時一切正常,猜想可能是 active_admin 使用的 layout 並非我所設定的,
後來找到 activeadmin_addons 這個 gem 來使用 select2。


安裝

gem 'activeadmin_addons'
bundle
rails g activeadmin_addons:install

這指令會產生 config/initializers/activeadmin_addons.rb 設定檔。

接下來步驟參考官方

最後,有關 active_admin_addons 的相關檔案如下

//app/assets/javascripts/active_admin.js
//= require active_admin/base
//= require activeadmin_addons/all
// app/assets/stylesheets/active_admin.scss
@import "active_admin/mixins";
@import "active_admin/base";
@import 'activeadmin_addons/src/stylesheets/all';

如果使用 webpack 的話,要額外 yarn add activeadmin_addons

yarn_add

會發現到,該指令也幫你一併安裝了 select2 和 datetimepicker

使用 select2 新增 tag

該官方文章會教你如何使用,
也可以參考 fred的文章 ,我最後是一起使用並完成的。


參考文章