什么是轨道中的NoMethodError?
我不是一个新手在铁轨,所以这是尴尬,但我不断得到一个nomethoderror我不知道发生了什么。
这是错误
这是我的控制器
在find_item
您正在设置@post
,而不是@item
,这使得视图无效。
在这种情况下,如果您在实例中没有匹配的方法,则会发生这种情况,在这种情况下,如果您查看show
动作,它只执行find_item
,而find_item
仅返回@post
实例而不是@item
实例。
只需在控制器@post
更改为@item
ActiveRecord会自动为您提供实例属性的getter和setter方法。 @item.title
在@item
对象上调用title
方法。 如果该方法未在其被调用的对象上定义,则NoMethodError
异常。
您在访问show时看到的错误是因为@item实例变量未在控制器中初始化,因此在视图文件show.html.erb
,即缺省情况下为零,并且Rails抱怨没有方法标题上nil
的对象(如零对象不必须的是方法, @item
或@post
可能具有它根据相应的表中是否存在该列)