Rails 中是否有类似于 find_or_create 的方法 find_child_or_create ?

发布于 2024-12-13 05:56:26 字数 120 浏览 0 评论 0原文

我想知道是否有一种方法可以返回一个对象的所有子对象,或者如果它们都不存在则创建一个新的子对象。

这种方法对于创建嵌套表单很方便,经常会出现由于子对象尚未初始化而导致嵌套表单不显示的情况。

谢谢。

I wonder if there is a method that returns all child objects of an object, or create a new child object if none of them exists.

Such a method is convenient for creating nested form, where it often the case that because a child object has not been initialized that the nested form does not show up.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

万劫不复 2024-12-20 05:56:26

我以嵌套形式执行此操作:

<%= form_for @parent do |f| %>
  ...
  <%= f.fields_for @parent.children || @parent.children.build do |child| %>
    ...
  <% end %>
  ...
<% end %>

或将其包装为模型方法:

class Model < AR::Base
  ...
  def children_form
    children || children.build
  end
end

然后在表单中使用它

<%= f.fields_for @parent.children_form do |child| %>

I do this in nested forms:

<%= form_for @parent do |f| %>
  ...
  <%= f.fields_for @parent.children || @parent.children.build do |child| %>
    ...
  <% end %>
  ...
<% end %>

or wrap it as a model method:

class Model < AR::Base
  ...
  def children_form
    children || children.build
  end
end

then use it in form

<%= f.fields_for @parent.children_form do |child| %>
灯角 2024-12-20 05:56:26

据我所知没有这样的方法。

There is no such method as far as I know.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文