2012-05-15 7 views
0

IM, следуя Railscasts с помощью JQuery tokeninputдобавив функцию подсчета из а теги падение вниз с помощью JSON, JQuery и рельсов

http://railscasts.com/episodes/258-token-fields-revised

в создании автозаполнения тегов лексем и успешно сделано. однако, я пытаюсь добавить атрибут count, очень похожий на счетчик тегов переполнения стека.

я имею в своем бирками # индекс

@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», я хочу, чтобы выпадающий список, чтобы отобразить «stelswarm x 2», так как он имеет счет два.

ив пытался делать

tags.map{ |tag| {:label => "#{tag.name} x #{tag.count}", :value => tag.name} } 

в моем заявлении еще, но падение вниз перестает рендеринг. он даже не может найти первое письмо. Что я делаю не так?

Не атрибуты: label и: value относятся к jquery в целом?

ив также смотрит на варианты от

http://loopj.com/jquery-tokeninput/

, но я не могу показаться, чтобы найти что-то, что будет работать или, по крайней мере, я мог думать ... жаль им не очень хорошо знакомы с JSON и jquery so help был бы очень благодарен =)

спасибо.

ответ

0

Я исправил его. похоже, что токен имеет атрибут: id и: name. поэтому я сделал ..

tags.map{ |tag| { id: "#{tag.id}", name: "#{tag.name} # #{tag.count}" } } 

 Смежные вопросы

  • Нет связанных вопросов^_^