Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ActsAsTaggableOn:标记未保留在数据库中_Ruby On Rails_Acts As Taggable On - Fatal编程技术网

Ruby on rails ActsAsTaggableOn:标记未保留在数据库中

Ruby on rails ActsAsTaggableOn:标记未保留在数据库中,ruby-on-rails,acts-as-taggable-on,Ruby On Rails,Acts As Taggable On,我正在使用3.4上的acts_as_taggable_插件来标记Rails 4.2.4。我尝试通过种子文件和控制台添加自定义标记,虽然它似乎添加了属性,但我无法访问它们 我的模型: class Recipe < ActiveRecord::Base acts_as_taggable_on :tags acts_as_taggable_on :dietaries, :meals, :cuisines, :sources end 运行seed以在上面的seed文件中创建配方后的控制台

我正在使用3.4上的acts_as_taggable_插件来标记Rails 4.2.4。我尝试通过种子文件和控制台添加自定义标记,虽然它似乎添加了属性,但我无法访问它们

我的模型:

class Recipe < ActiveRecord::Base
  acts_as_taggable_on :tags
  acts_as_taggable_on :dietaries, :meals, :cuisines, :sources
end
运行seed以在上面的seed文件中创建配方后的控制台步骤:

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.u列表时,它会运行一个查询

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 []>

使用这个工具有什么我不知道的吗?或者,是否有更好的标记工具?

通过在输入所有标记后调用.save来解决问题

您是否在种子文件或控制台步骤中调用过tarte.save?
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 []>