Posted at

acts-as-taggable-onをさくっと使ってみた

More than 1 year has passed since last update.


はじめに

タグを管理する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テーブル


参考

GitHub ActsAsTaggableOn

↓こちらは細かい機能を含め詳しく書かれています。参考にさせて頂きました:sunny:

Railsでacts-as-taggable-onを使ってタグ管理を行う