acts_as_taggable_on_steroids i formatowanie tagów do json

Witajcie
Staram się zrealizować tagowanie wpisów- jednak, aby było to bardziej user-friendly, chcę dodać ajaxowy bajer, który pomaga w dodawaniu tagów.
Chodzi konkretnie o FCBKcomplete - aby podpowiadanie działało, muszę wygenerować tablicę w json, o następującym schemacie:

[{"caption":"Nazwa Tagu","value":"Nazwa Tagu"},{"caption":"Nazwa drugiego tagu","value":"Nazwa drugiego tagu"}]
  • caption i value się niestety będzie dublować, ale taka już specyfika tagów :wink:
    być może jest inny, lepszy sposób na pobranie wszystkich tagów, ja to robię w następujący sposób:

@tags = News.tag_counts respond_to do |format| format.html { redirect_to(admin_news_path) } format.js { render :text => @tags.to_json } end
jednak otrzymuję wtedy coś w stylu:

[{"tag": {"name": "foo", "id": 1, "count": 2}}, {"tag": {"name": "bar", "id": 2, "count": 1}}]
  1. czy zna ktoś inną, lepszą metodę na pobranie wszystkich tagów?
  2. w jaki sposób przeformatować dane, aby miały oczekiwany przeze mnie format?:slight_smile:
    z góry dzięki za odpowiedzi :wink:

[quote=krzyzak][{"tag": {"name": "foo", "id": 1, "count": 2}}, {"tag": {"name": "bar", "id": 2, "count": 1}}]
[/quote]
Jesli nie chcess roota to ActiveRecord::Base.include_root_in_json = false

Wiecej przykladow na http://apidock.com/rails/v2.3.2/ActiveRecord/Serialization/to_json

np.

[code]@tags.to_json(:include => { :posts => {:include => { :comments => {:only => :body } }, :only => :title } })

@tags.to_json(:only => [ :id, :name ])

@tags.to_json(:except => [ :id, :created_at ])[/code]
Te opcje sa bardzo pomocne.

Pozdrawiam :slight_smile:

dzięki, faktycznie bardzo pomocne były Twoje wskazówki… doszedłem jednak do momentu, w którym wychodzą moje braki w samym rubym (które staram się systematycznie nadrabiać :wink: ) - mianowicie, doszedłem do momentu, gdy wyświetla mi już wartość caption (lub value) - i trzeba taką samą wartość przypisać do pola value ( lub caption) - mianowicie mam coś takiego :

      format.js  { render :text => @tags.to_json(:only=>[:name] ).gsub!(/name/,"caption") }

potrzeba mi teraz metody, którą mogę przekopiować wartość z :name do pola value