2016-11-23 75 views
-3

我不是一个新手在铁轨,所以这是尴尬,但我不断收到nomethoderror我不知道发生了什么。什么是轨道中的NoMethodError?

这是错误

enter image description here

,这是我的控制器

enter image description here

+2

请阅读[如何问](http://stackoverflow.com/帮助/如何操作)文档,并将源代码放在纯文本中而不是图像中。 – mudasobwa

+1

请阅读“[mcve]”,然后删除图像,并将消息文本复制/粘贴到问题中,以及显示问题的_absolute minimum_代码。 [我们无法重用图片](http://stackoverflow.com/q/5508110/128421),搜索引擎也不能将它们编入索引,这有助于他人找到您的问题并解决他们的编码问题。 –

回答

0

find_item要设置@post,不@item,这使得零的视图。

1

这种情况发生时,有中,你在这种情况下accesing的情况下,不匹配的方法,在这种情况下,如果你看一下show行动,只负责find_itemfind_item只返回一个@post实例不是@item实例。

控制器

0

的ActiveRecord自动为您获取方法和实例的setter方法属性只要改变@post@item@item.title@item对象上调用title方法。如果该方法未在其被调用的对象上定义,则引发NoMethodError异常。

访问show时看到的错误是因为@item实例变量未在控制器中初始化,因此在视图文件show.html.erb中不可用,即缺省情况下为零,Rails抱怨没有方法标题为nil对象(因为零对象不具有该方法,@item@post可能取决于各自的表是否有该列)