在Parent的节目中,如何创建新的Child?

2026-04-11 18:551阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计305个文字,预计阅读时间需要2分钟。

在Parent的节目中,如何创建新的Child?

在现有的Parent视图表中,我希望创建一个子表(Children)来记录子项。我已想到如何创建Child表单并包含Parent视图中的节点,但不确定如何排除parent_id字段。在不使用表单字段的情形下,如何实现将pa包含在结果中?

在Parent的节目中,如何创建新的Child?

在现有Parent的show视图中,我想有一个表单来创建Children.

我已经想出了如何创建一个Child表单并将其包含在Parent的节目中,而不是如何排除parent_id字段.如何在不使用表单字段的情况下将parent_id分配给子项?

我认为处理此问题的最佳方法是使用父控制器的成员路由,以便在创建子级时,始终通过路由知道它所属的父级.例如:

# routes.rb resources :parents do member do post 'create_child' end end

然后在你看来

# parents/show.html.erb <%= form_for @child, :url => create_child_parent_path(@parent) do |f| %> ... <% end %>

最后在你的控制器中

# parents_controller.rb def create_child @parent = Parent.find(params[:id]) @child = @parent.children.build(params[:child]) if @child.save @child = Child.new end render :action => :show end

这里的关键是,即使表单不包含有关父项的信息,当您在关联上使用构建方法时,默认情况下会分配parent_id.

标签:

本文共计305个文字,预计阅读时间需要2分钟。

在Parent的节目中,如何创建新的Child?

在现有的Parent视图表中,我希望创建一个子表(Children)来记录子项。我已想到如何创建Child表单并包含Parent视图中的节点,但不确定如何排除parent_id字段。在不使用表单字段的情形下,如何实现将pa包含在结果中?

在Parent的节目中,如何创建新的Child?

在现有Parent的show视图中,我想有一个表单来创建Children.

我已经想出了如何创建一个Child表单并将其包含在Parent的节目中,而不是如何排除parent_id字段.如何在不使用表单字段的情况下将parent_id分配给子项?

我认为处理此问题的最佳方法是使用父控制器的成员路由,以便在创建子级时,始终通过路由知道它所属的父级.例如:

# routes.rb resources :parents do member do post 'create_child' end end

然后在你看来

# parents/show.html.erb <%= form_for @child, :url => create_child_parent_path(@parent) do |f| %> ... <% end %>

最后在你的控制器中

# parents_controller.rb def create_child @parent = Parent.find(params[:id]) @child = @parent.children.build(params[:child]) if @child.save @child = Child.new end render :action => :show end

这里的关键是,即使表单不包含有关父项的信息,当您在关联上使用构建方法时,默认情况下会分配parent_id.

标签: