2017-08-02 46 views
3

我有三个级别深度嵌套的资源,如父母,子女红宝石较深的资源,评论嵌套三级在轨

Rails.application.routes.draw do 
    resources :parents do 
    resources :children do 
     resources :grand_children 
    end 
    end 
end 

在行动grand_children#new它提醒“家长必须存在” 任何人都可以帮助我如何创建一个嵌套在三级深的grand_children?

+0

GrandChildrenController#new应该有'@grand_children = Parent.find(params [:parent_id])。children.find(params [:children_id])。grand_children.new',同样用于create动作(使用相同的链嵌套),甚至是显示/编辑操作,因为如果GrandChildren家长的ID不是1或GrandChildren的孩子ID是不应该能够看到带有URL“/ parents/1/children/1/grand_children/2”的GrandChildren#2不是1.这阻止了基本的URL操作。 – MrYoshiji

回答

0

在您的GrandChildren模型中,您可能有belongs_to :child, optional: true,但我不确定这将解决您的路由错误,因为嵌套父路线需要存在。

也许是方法,而不是对你grand_children#new行动,以确保父母child存在,外键child_id传递在创建一个grand_child纪录。