Railsのアプリにタグをつけてみます。そもそもこれがやりたくてWebアプリを作りはじめたんだったっけ。
acts-as-taggable-onを使います。Rails + タグ機能で検索して、一番できた気がしたので。
環境
- rails 4.0.2
- ruby 2.1.0dev
- acts-as-taggable-on 3.1.1
インストール
Gemfile
に以下を追記します。
gem "acts-as-taggable-on"
bundle install
を実行します。
余談ですが、デザリング環境でbundle install
が実行できない件、なんとかしたいです。見えないプロキシが働いてるのか・・・。うまく行ってほしい。。
マイグレーションのインストール(?)をします。bundle install
を実行すると、次にこれをしなさいと言われます。
rake acts_as_taggable_on_engine:install:migrations
マイグレーションをします。
rake db:migrate
これで準備完了です。
タグ付けしたいモデルにタグを設定
タグをつけたいモデルに以下を追記します。
acts_as_taggable # Alias for acts_as_taggable_on :tags
これだけ。これだけ!
UIからタグを設定
タグの入力には、Tokenfield for Bootstrap
を使ってみます。
初めは’jQuery-Tags-Input’を使うつもりだったのですが、Bootstrapの見た目との相性が悪かったので、やめました。
インストール
- bootstrap-tokenfieldから、ソースコードをダウンロードします。
/app/assets/javascripts
に取得したソースコードの/dist/bootstrap-tokenfield.jp
をコピーします。/app/assets/stylesheets
に、取得したソースコードの/dist/css/bootstrap-tokenfield.min.css
をコピーします。
UIを作成
対象モデルの作成フォームに以下を追記します。
<%= tag(:input, { id: "tokenfield", type: "text", name: "モデル名[tag_list]", value: tag_str, class: "form-control" }) %>
:
<script>
$('#tokenfield').tokenfield()
</script>
該当モデルのstrong parameters
に、:tag_list
を追加します。
これでタグを入力できる様になりました!
とっても簡単でびっくりです。ホントは候補値を出したりできるみたいですが、今のところうまく動いていません・・。
何か分かったら、追記します。
コメント