2015-12-14 25 views
0

我正在使用acts_as_taggable_on(3.4)插件來標記Rails(4.2.4)。我試過通過我的種子文件和控制檯添加自定義標籤,雖然它似乎添加了屬性,但我無法再訪問它們。ActsAsTaggableOn:標記不在數據庫中

我的模型:

class Recipe < ActiveRecord::Base 
    acts_as_taggable_on :tags 
    acts_as_taggable_on :dietaries, :meals, :cuisines, :sources 
end 

種子文件:

tarte = Recipe.create(title: "Caramelized Tomato Tarte Tatin", url: "www.chocolateandzucchini.com", notes: "Lorem ipsum", favorite: false) 

tarte.dietary_list.add("vegetarian," "vegan") 
tarte.meal_list.add("appetizers", "mains", "dinner") 
tarte.cuisine_list.add("French") 
tarte.source_list.add("Chocolate and Zucchini") 

控制檯步驟(運行種子創建種子文件中上述的食譜後):

tarte = Recipe.first 
tarte.dietary_list.add("vegetarian," "vegan") 
tarte.meal_list.add("appetizers", "mains", "dinner") 
tarte.cuisine_list.add("French") 
tarte.source_list.add("Chocolate and Zucchini") 

當我調用Recipe.first.dietary_list,它會運行查詢

Recipe Load (0.6ms) SELECT "recipes".* FROM "recipes" ORDER BY "recipes"."id" ASC LIMIT 1 
ActsAsTaggableOn::Tag Load (0.7ms)SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2 AND (taggings.context = 'dietaries' AND taggings.tagger_id IS NULL) [["taggable_id", 1], ["taggable_type", "Recipe"]] 

但它返回一個空數組:

=> [] 

如果我把Recipe.first.dietaries,它返回一個空的集合代理:

Recipe Load (0.6ms) SELECT "recipes".* FROM "recipes" ORDER BY "recipes"."id" ASC LIMIT 1 
ActsAsTaggableOn::Tag Load (0.5ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2 AND "taggings"."context" = $3 [["taggable_id", 1], ["taggable_type", "Recipe"], ["context", "dietaries"]] 
=> #<ActiveRecord::Associations::CollectionProxy []> 

有什麼關於使用此工具我丟了?或者,有更好的標籤工具嗎?

+0

您曾經在您的種子文件或控制檯步驟中調用過'tarte.save'嗎? – sicks

+0

不,這樣做! – Claire

回答

0

通過在輸入所有標籤後調用.save來解決