ruby-on-rails – 在Parent的节目中创建新的Child

ruby-on-rails – 在Parent的节目中创建新的Child,第1张

概述在现有Parent的show视图中,我想有一个表单来创建Children. 我已经想出了如何创建一个Child表单并将其包含在Parent的节目中,而不是如何排除parent_id字段.如何在不使用表单字段的情况下将parent_id分配给子项? 我认为处理此问题的最佳方法是使用父控制器的成员路由,以便在创建子级时,始终通过路由知道它所属的父级.例如: # routes.rbresources 在现有Parent的show视图中,我想有一个表单来创建Children.

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

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

# routes.rbresources :parents do  member do    post 'create_child'  endend

然后在你看来

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

最后在你的控制器中

# parents_controller.rbdef create_child  @parent = Parent.find(params[:ID])  @child = @parent.children.build(params[:child])  if @child.save    @child = Child.new  end  render :action => :showend

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

总结

以上是内存溢出为你收集整理的ruby-on-rails – 在Parent的节目中创建新的Child全部内容,希望文章能够帮你解决ruby-on-rails – 在Parent的节目中创建新的Child所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1229160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存