Frage

Bearbeiten

Die Anweisungen auf Github weisen Sie die Gemcutter Quelle für den Edelstein zu verwenden. Derzeit installiert diese Version 2.0.5, die den Fehler enthält ich unten beschrieben habe.

@Vlad Zloteanu zeigt, dass 1.0.5 nicht den Fehler enthalten. Ich habe auch mit 1.0.5 und bestätigen versucht, dass der Fehler macht nicht gibt es in dieser Version. Menschen mit acts_as_taggable_on kämpfen und im Besitz Tags auf 2.x, Rollbacks und Warten auf eine fix ..


Aus irgendeinem Grund Tags sind nicht auf einem markierbare Objekt zeigt, wenn ein Tagger angegeben ist.

Testen der Post

class Post < ActiveRecord::Base
  acts_as_taggable_on :tags
  belongs_to :user
end

>> p = Post.first
=> #<Post id: 1, ...>
>> p.is_taggable?
=> true
>> p.tag_list = "foo, bar"
=> "foo, bar"
>> p.save
=> true
>> p.tags
=> [#<Tag id: 1, name: "foo">, #<Tag id: 2, name: "bar">]

Testen der Benutzer

class User < ActiveRecord::Base
  acts_as_tagger
  has_many :posts
end

>> u = User.first
=> #<User id: 1, ...>
>> u.is_tagger?
=> true
>> u.tag(p, :with => "hello, world", :on => :tags)
=> true
>> u.owned_tags
=> [#<Tag id: 3, name: "hello">, #<Tag id: 4, name: "world">]

Refresh der Post

>> p = Post.first
=> #<Post id: 1 ...>
>> p.tags
=> [#<Tag id: 2, name: "bar">, #<Tag id: 1, name: "foo">]

Wo ist die hello und world-Tags? Wie durch ein Wunder, wenn ich direkt auf die Datenbank zu Satz tagger_id und tagger_type zu NULL, die beiden fehlenden Tags angezeigt wird ändern. Ich vermute, es ist etwas falsch mit meinem User Modell? Was soll das?


EDIT

Noch seltsamer:

Post.tagged_with("hello")
#=> #<Post id: 1, ...>

Es findet an den Pfosten So kann es Tag aus der Datenbank lesen! Wie kommt es nicht mit Post#tags oder Post#tag_list angezeigt?

War es hilfreich?

Lösung

neu erstellt ich Ihr Projekt, indem genau die gleichen Klassen.

Das ist mein Ergebnis:

>> Post.create
=> #<Post id: 1, created_at: "2010-05-18 09:16:36", updated_at: "2010-05-18 09:16:36">
>> p = Post.first
=> #<Post id: 1, created_at: "2010-05-18 09:16:36", updated_at: "2010-05-18 09:16:36">
>> p.is_taggable?
=> true
>> p.tag_list = "foo, bar"
=> "foo, bar"
>> p.save
=> true
>> p.tags
=> [#<Tag id: 1, name: "foo">, #<Tag id: 2, name: "bar">]
>> User.create
=> #<User id: 1, created_at: "2010-05-18 09:17:02", updated_at: "2010-05-18 09:17:02">
>> u = User.first
=> #<User id: 1, created_at: "2010-05-18 09:17:02", updated_at: "2010-05-18 09:17:02">
>> u.is_tagger?
=> true
>> u.tag(p, :with => "hello, world", :on => :tags)
=> true
>> u.owned_tags
=> [#<Tag id: 3, name: "hello">, #<Tag id: 4, name: "world">]
>> p = Post.first
=> #<Post id: 1, created_at: "2010-05-18 09:16:36", updated_at: "2010-05-18 09:16:36">
>> p.tags
=> [#<Tag id: 1, name: "foo">, #<Tag id: 2, name: "bar">, #<Tag id: 3, name: "hello">, #<Tag id: 4, name: "world">]

Daher kann ich Ihre Fehler nicht wiederholen. Ich habe es versucht, sowohl mit MySQL und SQLite.

Dies ist aus meiner env-Datei:

config.gem "mbleigh-acts-as-taggable-on", :source => "http://gems.github.com", :lib => "acts-as-taggable-on "

Das ist mein Juwel Version:

gem list | grep taggable
mbleigh-acts-as-taggable-on (1.0.5)

Können Sie Ihre Juwel Version veröffentlichen? Können Sie versuchen, Ihr Juwel zu aktualisieren? Was DB verwenden Sie?

Wenn es nicht funktioniert, können Sie auch die Ausgabe von tail -f log/development.log posten?

EDIT: Ich bin mit Rails 2.3.5

Andere Tipps

mbleigh freigegeben ein, dass die Lösung dieses Problems zu begehen. Erhalten alle Tags können Sie verwenden owner_tags_on:

p = Post.first
p.owner_tags_on(nil, :tags )

Dies ist der commit: http://github.com/ mbleigh / Handlungen-as-markierbare-on / commit / 3d707c25d45b5cc680cf3623d15ff59856457ea9

Auf Wiedersehen, Alessandro DS

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top