はじめに
タグを管理するgem「acts-as-taggable-on」について、簡単な使用手順と登録したタグを画面に出す部分まで簡単にまとめてみた(細かい機能は割愛)。
使用環境
Ruby 2.3.0p0
Rails 5.0.0.1
手順
1. gemインストール
Gemfile
gem 'acts-as-taggable-on', '~> 4.0'
$ bundle
2. テーブル作成
$ rake acts_as_taggable_on_engine:install:migrations
$ rake db:migrate
これで「taggings」、「tags」テーブルが生成される。
3. コーディング
Draftモデル(Qiitaの「下書き」みたいなモデル)を使った例です。
モデル
モデルに「acts_as_taggable(acts_as_taggable_on :tagsのエイリアス)」を追加する。
app/models/draft.rb
class Draft < ApplicationRecord
acts_as_taggable
end
コントローラー
コントローラーのストロングパラメータに「:tag_list」を追加する。
app/controllers/drafts_controller.rb
def draft_params
params.require(:draft).permit(:title, :content, :user_id, :tag_list)
end
ビュー
Bootstrapを使っています。
編集画面
<div class="field form-group form-group-lg">
<%= f.label :tag_list, class: "sr-only control-label" %>
<%= text_field_tag 'draft[tag_list]', draft.tag_list.join(","), class: "form-control" %>
</div>
表示画面
<% @draft.tag_list.each do |tag| %>
<span class="label label-primary"><%= tag %></span>
<% end %>
テーブルとデータ
前述のように登録するとこんな感じでデータが生成されます。
tagsテーブル
taggingsテーブル
参考
↓こちらは細かい機能を含め詳しく書かれています。参考にさせて頂きました
Railsでacts-as-taggable-onを使ってタグ管理を行う