jquerytokeninputを使用してrailscastsをフォローしているim
http://railscasts.com/episodes/258-token-fields-revised
オートコンプリートタグトークンを作成し、正常に作成しました。ただし、iveは、スタックオーバーフロータグカウンターと非常によく似たカウント属性を追加しようとしています。
私は私のtags#indexにあります
@tags = Tag.order(:name)
#@tags = Tag.order(:name).where("name like ?", "%#{params[:term]}%")
respond_to do |format|
format.html
format.json { render json: @tags.tokens(params[:q]) }
end
レンダリングすると、トークンメソッドが呼び出されます。
def self.tokens(query)
tags = where("name like ?", "%#{query}%")
if tags.empty?
[{id: "<<<#{query}>>>", name: "New: \"#{query}\""}]
else
puts tags.inspect
tags
end
end
「steelswarm」という単語を入力して、返されるタグを調べると、コンソールに「...」と表示されます。
[#<Tag id: 4, name: "steelswarm", created_at: "2012-05-11 01:49:55", updated_at: "2012-05-11 01:49:55", count: 2>]
ユーザーが「steelswarm」という単語を入力し始めると、ドロップダウンに「steelswarmx2」と表示されます。これは2つのカウントがあるためです。
iveはやってみました
tags.map{ |tag| {:label => "#{tag.name} x #{tag.count}", :value => tag.name} }
私のelseステートメントでは、ドロップダウンがレンダリングを停止します。もう最初の文字を見つけることさえできません。私は何が間違っているのですか?
:label属性と:value属性は全体としてjqueryに属していませんか?
IVEもからのオプションを見てきました
http://loopj.com/jquery-tokeninput/
しかし、私はうまくいくものを見つけることができないか、少なくとも私は考えることができます...申し訳ありませんが、jsonとjqueryにあまり精通していないので、助けていただければ幸いです=)
ありがとうございました。