2012-04-16 10 views
0

この状況でjson配列を解析する方法があるのだろうかと思っていました。私は、スタックオーバーフローのタグのテキストフィールドに非常によく似て、タグテキストフィールドのオートコンプリートを行っています。私はその特定のタグに関連付けられたカウントを持っていたかった。私のビューのいずれかでレール、オートコンプリート機能用のjson配列を解析する

、私は今度は私のarticles.js.coffee

jQuery -> 
    $('#article_tag_name').autocomplete 
     source: $('#article_tag_name').data('autocomplete-source') 

と私は私のタグコントローラ内を呼び出して...

<div class="tags"> 
    <%= f.label :tag_name, "Tags" %> 
    <%= f.text_field :tag_name, data: { autocomplete_source: tags_path} %> 
</div> 

を持っています...

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 x 1」が含まれています。 。

json配列を解析する別の方法がありますかjqueryの名前とカウントを別々に処理する方法はありますか?

私はまだこのjsonとjqueryのすべてにかなり新しいです。私はrailscastsに従っていた。助けのために多く 感謝=)

答えて

2

あなたのオートコンプリートアクションがすごい私はあなたがそれを行うことができます知らなかった

render json: @tags.map{ |tag| {:label => "#{tag.name} x #{tag.count}", :value => tag.name} } 
+0

のようなものをレンダリングする必要があります。どうもありがとう!私はそれを念頭に置いておきます – Sasha

関連する問題