Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have 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>

スクリーンショット 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を使ってタグ管理を行う

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away