我是Rails的新手,我正在开发一个具有以下路线的简单应用程序:
resources :mothers do
resources :kids
end
在孩子们的show.html.erb页面上,我正在展示孩子的母亲,并有一个链接回母亲的链接:
Mother: <%= @kid.mother.full_name %>
<%= link_to raw('View'), mother_path %>
然而,这似乎重定向到路径母/:id其中:id是:母亲的ID实际上是:孩子的身份。
如何更正路线,以便通过ID链接到孩子的正确母亲?
我试过
<%= link_to raw('View'), mother_path(mother) %>
它说“未定义的局部变量或方法”。我在控制器中遗漏了什么吗?
答案 0 :(得分:4)
<%= link_to 'View', mother_path(@kid.mother) %>
或
<%= link_to 'View', @kid.mother %>
答案 1 :(得分:1)
我建议您阅读ruby on rails3 basic routing,通过该{{3}}您可以获得有关路由正常工作的基本知识
答案 2 :(得分:0)
无需将一个资源放入另一个资源。
儿童模特
class Kid < ActiveRecord::Base
belongs_to :mother
end
母模型
class Mother < ActiveRecord::Base
has_many :kids
end
您的routes.rb -
resources :mothers
resources :kids
您的观点链接:
<%= link_to 'View', {:controller => 'mother', :action => :show, :id => @kid.mother.id} %>