この状況でjson配列を解析する方法があるかどうか疑問に思っていました。スタックオーバーフローのタグテキストフィールドと非常によく似た、タグテキストフィールドのオートコンプリートを行っています。その特定のタグに関連付けられたカウントが必要でした。
私の見解の1つでは、私は...
<div class="tags">
<%= f.label :tag_name, "Tags" %>
<%= f.text_field :tag_name, data: { autocomplete_source: tags_path} %>
</div>
次に、私の article.js.coffee を呼び出します
jQuery ->
$('#article_tag_name').autocomplete
source: $('#article_tag_name').data('autocomplete-source')
そして私のタグコントローラーには...
def index
@tags = Tag.order(:name).where("name like ?", "%#{params[:term]}%")
render json: @tags.map{|tag| "#{tag.name} x #{tag.count}"}
end
コードは機能し、ajax を使用してタグ テーブルからタグ (およびそのカウント) を取得できます。
ただし、記事のモデルファイルにあるこのコードもあります
def tag_name=(name)
self.tag = Tag.find_or_create_by_name(name) if name.present?
end
タグが存在しない場合は、ユーザーがタグを作成できるようにします。私が遭遇する問題はこれです...タグは現在「Java x 1」とラベル付けされており、ユーザーがそのタグを選択すると、データベースには「Java」だけではなく独自のタグとして「Java x 1」が含まれるようになりました.
json配列を解析する別の方法、またはjqueryが名前とカウントを個別に処理する方法はありますか?
申し訳ありませんが、このjsonとjqueryのすべてにまだ慣れていません。レールキャストをフォローしていました。助けてくれてありがとう=)