1

我是 Rails 的新手,我正在使用一个简单的应用程序,它具有以下路线:

 resources :mothers do
    resources :kids
end

在 kids show.html.erb 页面上,我显示了孩子的母亲,并有一个链接返回到母亲的链接:

 Mother: <%= @kid.mother.full_name %>
      <%= link_to raw('View'), mother_path %>

然而,这似乎重定向到一个路径mother/:id,其中:id 是mother 的:id 实际上是child 的:id。

如何更正路线,使其通过 ID 链接到孩子的正确母亲?

我试过了

<%= link_to raw('View'), mother_path(mother) %>

它说“未定义的局部变量或方法”。我的控制器中是否缺少某些内容?

4

3 回答 3

4
<%= link_to 'View', mother_path(@kid.mother) %>

或者

<%= link_to 'View', @kid.mother %>
于 2013-02-01T09:09:28.427 回答
1

我建议您阅读ruby​​ on rails3 basic routing,您将了解路由正常工作的基本概念

于 2013-02-01T09:47:03.357 回答
0

无需将一种资源放入另一种资源中。

儿童模特

class Kid < ActiveRecord::Base
  belongs_to :mother
end

母亲模型

class Mother < ActiveRecord::Base
  has_many :kids
end

你的路线.rb-

resources :mothers 

 resources :kids

您的观点链接:

<%= link_to 'View', {:controller => 'mother', :action => :show, :id => @kid.mother.id} %>
于 2013-02-01T09:55:35.767 回答