链接到父模型的未定义方法

时间:2014-01-21 14:43:08

标签: ruby-on-rails

此时我有这个数据库结构

enter image description here

routes.rb中的配置就像这样

resources :polls do
    resources :subpolls
end

resources :subpolls do
    resources :preguntas
end

resources :preguntas do
    resources :respuestas
end

此时我正处于index.html.erb文件中的“respuestas”模型,我想要一个名为“back”的link_to回到preguntas模型,所以我就这样了

index.html.erb

<% link_to "Back", subpolls_preguntas_path(@preguntas.subpoll_id) , class: "btn btn-default btn-sm" %>

但是我收到了这个错误

undefined method `subpoll_id' for nil:NilClass

模特中的关系是好的

有人可以告诉我如何解决它。

2 个答案:

答案 0 :(得分:1)

因为你在respuestas模型和索引页面中,所以你可以将父对象引用为@pregunta而不是@preguntas

答案 1 :(得分:0)

只需阅读异常消息:

  

未定义的方法`subpoll_id'代表nil:NilClass

执行@preguntas.subpoll_id时,ruby会告诉您它无法调用subpoll_id上的方法nil

您必须将@preguntas初始化为Pregunta模型的实例。