当尝试循环模型的条目时,机车编辑器抛出'NoMethodError'

时间:2012-12-06 03:26:23

标签: ruby-on-rails ruby liquid locomotivecms

所以我正在使用机车,Ruby on Rails CMS及其编辑器来创建一个博客。在机车后端,我制作了一个模型,其中包含一个包含可能的博客帖子的“帖子”。然后,在我的index.liquid文件中,我试图遍历模型的内容并显示entires。

这是液体循环:

{% for post in contents.posts %}
    {{ post.title }}
{% endfor %}

但是它显示我'/'的'NoMethod错误','未定义的方法contents为nil:NilClass'。如果我从for ... in循环中删除.posts没有错误,但循环甚至不会发生一次,当然,因为只有contents无法循环。

我已阅读文档,代码应该有效。为什么它表现得好像没有数据?

2012年12月11日更新:如果我将我的代码推送到真正的机车引擎它完美运行,只有编辑器抛出此错误。我使用编辑器,所以我可以通过IDE而不是浏览器编辑代码。

2012年12月12日更新:想出这不是机车编辑的目的。您应该在制作网站时使用虚拟数据库,然后将其推送到引擎,以便将其与您自己的数据库一起使用。

1 个答案:

答案 0 :(得分:2)

  1. 也许循环表现得好像没有数据,因为后端Rails连接到没有数据。
  2. 如果您的内容在生产数据库中,Rails也需要使用生产数据库。

    rails server -e production
    

    请参阅此问题中有关切换到生产环境的进一步说明:Change a Rails application to production

    1. 如果“contents”为nil,则“.posts”等访问器方法将显示为无方法错误。尝试在模板中添加一个部分,以便处理“contents.nil?”时的内容。是的。

    2. 由于我不熟悉机车CMS,只是Rails,这是在这种情况下尝试的另一件事:小心对你的模型的单数和复数引用! Rails对这些名称非常特别,您可能需要使用“内容”而不是“内容”。