###前提・実現したいこと
Ruby on Railsでアプリを作成しています。
タグ管理をしていて、入力時のオートコンプリートまでは実装出来たのですが、
タグの使用数が入力時にわかればどんなタグがメジャーなのかわかって良いかと思ったので表示させたいと思っています。
手順の検討がつかないのでなんとなくの手順でもいいので分かる方いらっしゃいましたら教えていただけますでしょうか。
###発生している問題・エラーメッセージ
オートコンプリートで表示させる文字に数量を表示させると数量を含んだ文字がタグとしてセットされてしまうので失敗でした。
そこで入力が完了してからその文字を含むタグを検索してリスト表示させる仕様がいいかと思ったのですがどのような
処理手順を踏めば良いか検討つきませんでした。
###参考画像
(引用)Qiitaさんの投稿画面
このようなサジェスト機能が理想的です・・・。
###ソースコード
HAML
1views/items/_item.html.haml 2 3.full_display_container 4 .item_form 5 = form_for(@item, html: { multipart: true }) do |f| 6 = render 'shared/error_messages', object: f.object 7 .field 8 = f.text_field :title, :placeholder => "タイトル", class: 'form-control', required: true 9 %ul#item-tags 10 11 ・・・
javascript
1items.js 2 3// タグのオートコンプリートと編集画面時のタグセット処理 4$(document).on('ready page:load', function() { 5 var i, len, ref, results, tag; 6 $('#item-tags').tagit({ 7 placeholderText: 'タグを入力してください・・・', 8 fieldName: 'item[tag_list]', 9 singleField: true, 10 availableTags: gon.available_tags 11 }); 12 if (gon.item_tags != null) { 13 ref = gon.item_tags; 14 results = []; 15 for (i = 0, len = ref.length; i < len; i++) { 16 tag = ref[i]; 17 results.push($('#item-tags').tagit('createTag', tag)); 18 } 19 return results; 20 } 21});
ruby
1class ItemsController < ApplicationController 2 3# タグ関連 4 before_action :set_available_tags_to_gon, only: [:new, :edit] 5 before_action :set_item_tags_to_gon, only: [:edit] 6 7・・・ 8 9private 10 ・・・ 11 # --- Tag関連 --- 12 def set_item_tags_to_gon 13 gon.item_tags = @item.tag_list_entry.split(",") 14 end 15 16 def set_available_tags_to_gon 17 gon.available_tags = Item.tags_on(:tags).pluck(:name) 18 end 19end 20
###補足情報(言語/FW/ツール等のバージョンなど)
ruby 2.3.0
rails 4.2.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/05/04 07:51