я слежу за railscasts, используя jquery tokeninput
http://railscasts.com/episodes/258-token-fields-revised
в создании токенов тегов автозаполнения и успешно это сделали. однако я пытался добавить атрибут count, очень похожий на счетчик тегов переполнения стека.
у меня в тегах #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», я хочу, чтобы в раскрывающемся списке отображалось «steelswarm x 2», так как он имеет значение два.
я пытался сделать
tags.map{ |tag| {:label => "#{tag.name} x #{tag.count}", :value => tag.name} }
в моем заявлении else, но раскрывающийся список останавливает рендеринг. он даже не может найти первую букву. Что я делаю неправильно?
разве атрибуты :label и :value не принадлежат jquery в целом?
тоже рассматривал варианты
http://loopj.com/jquery-tokeninput/
но я не могу найти что-то, что сработало бы или, по крайней мере, я мог бы придумать... извините, я не очень хорошо знаком с json и jquery, поэтому помощь будет очень признательна =)
Спасибо.