LoginSignup
29
49

More than 5 years have passed since last update.

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

Posted at

はじめに

タグを管理する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>

スクリーンショット 2017-02-19 18.26.13.png

表示画面

<% @draft.tag_list.each do |tag| %>
  <span class="label label-primary"><%= tag %></span>
<% end %>

スクリーンショット 2017-02-19 15.23.39.png

テーブルとデータ

前述のように登録するとこんな感じでデータが生成されます。

tagsテーブル

スクリーンショット 2017-02-19 18.01.27.png

taggingsテーブル

スクリーンショット 2017-02-19 18.01.09.png

参考

GitHub ActsAsTaggableOn

↓こちらは細かい機能を含め詳しく書かれています。参考にさせて頂きました:sunny:
Railsでacts-as-taggable-onを使ってタグ管理を行う

29
49
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
49