Rails路由纠正:id

时间:2013-02-01 09:08:05

标签: ruby-on-rails routes

我是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) %>

它说“未定义的局部变量或方法”。我在控制器中遗漏了什么吗?

3 个答案:

答案 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} %>