代码之家  ›  专栏  ›  技术社区  ›  Tim Sullivan

有很多变形标记-在开发机器上工作,而不是在生产上!

  •  0
  • Tim Sullivan  · 技术社区  · 16 年前

    我有个奇怪的问题,在哪里 在我的开发机器上运行良好 ,但当我部署到生产服务器时,在日志中会出现以下错误:

    ActionView::TemplateError (undefined method `tags' for #<Person:0x98bb9d4>) on line...  
    

    production.log文件中有一个条目说明加载了多个变形,因此该插件在生产机器上不是不可用的。

    编辑:我应该提到,在生产和开发方面,我使用的是同一个数据库。我下载了制作版,并在开发机器上使用,效果很好。

    4 回复  |  直到 16 年前
        1
  •  0
  •   Vishu Vishu    16 年前

    cap部署:迁移

        2
  •  0
  •   Cameron Price    16 年前

    我见过类似的问题,其中多态类型字段没有正确填写,或者在添加多态类型标记之前存在一些现有数据。人是一个亚类吗?_type字段在polymorphs表中是否包含任何空值?

        3
  •  0
  •   Alderete    16 年前

    这里只是在黑暗中刺伤,但是有很多变形不会在你的模型中添加标记功能。相反,您可以使用生成器创建进入lib/tagging_extensions.rb的标记扩展模块。模块文件具有添加标记函数的辅助方法,该方法构建在has_many_polymorphs基本功能的基础上。

    那么,您是否可能安装了插件,但没有安装标记扩展名文件?

        4
  •  0
  •   Tim Sullivan    16 年前

    通过在environment.rb的末尾添加一行代码(仅三个字母),就解决了这个问题。我对其进行了评论,以便我们永远不会忘记wtf正在进行的工作:

    # Magic begins here.
    # We need to force Rails to load the Tag record, or 
    # has_many_polymorphs doesn't work properly. I don't know
    # if there's a better fix, but this one seems reasonable. :-/
    Tag
    

    就这样。我相信有一个优雅和适当的解决方案,但这是可行的。奇怪的

    推荐文章