gpt4 book ai didi

ruby-on-rails - 如何在rails中以嵌套形式省略现有子记录?

转载 作者:行者123 更新时间:2023-12-04 11:45:18 24 4
gpt4 key购买 nike

在我的应用程序中 用户 有很多项目 .我想创建一个“添加多个项目”表格,所以用户 可以创造很多项目 立刻。

在我看来,最快的方法是制作一个带有嵌套在其中的项目字段的用户表单,并省略用户字段。这样,当提交表单时,用户将被保存并自动创建所有新的项目记录。

但是,我不想要 现有 项目以表格形式显示。只有空字段对于正在创建的新项目(来自@user.projects.build)。是否有我可以传递的参数或我可以在表单中更改的内容以省略现有的项目记录?

<% form_for (@user) do |f| %>

<% f.fields_for :project do |project_form| %>
<%= render :partial => 'project', :locals => {:f => project_form} %>
<% end %>

<%= add_child_link "New Project", f, :projects %>

<%= f.submit "save" %>

<%end%>

我正在使用 Ryan Bate 的 complex forms例子。该代码工作正常。我只想省略现有项目以这种形式显示。

最佳答案

您可以使用 new_record?区分新创建记录和旧记录的方法:

<% form_for @user do |f| %>
<% f.fields_for :project do |project_form| %>
<%= render :partial => 'project', :locals => {:f => project_form} if project_form.object.new_record? %>
<% end %>
<%= add_child_link "New Project", f, :projects %>
<%= f.submit "save" %>
<% end %>

关于ruby-on-rails - 如何在rails中以嵌套形式省略现有子记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com