Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 5.1.4多个对象的字段_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails 5.1.4多个对象的字段

Ruby on rails Rails 5.1.4多个对象的字段,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个作者和书模型。一个作者可以有许多书,但一本书只能有一个作者 在创建新的作者的过程中,如何添加“新书”按钮,该按钮将为作者表单添加字段?我希望能够添加多本书籍。到目前为止,我发现的方法只是为添加固定数量的字段,如下所示: <%= form_with(model: author, local: true) do |form| %> ... <% 5.times do %> <%= form.fields_for :books do |bo

我有一个
作者
模型。一个作者可以有许多
,但一本书只能有一个
作者

在创建新的
作者
的过程中,如何添加“新书”按钮,该按钮将为
作者
表单添加字段?我希望能够添加多本
书籍
。到目前为止,我发现的方法只是为添加固定数量的字段,如下所示:

<%= form_with(model: author, local: true) do |form| %>
...
    <% 5.times do %>
        <%= form.fields_for :books do |books| %>
        ...
        <% end %>
    <% end %>
...
<% end %>

...
...
...

我不想这样,如果作者有超过5本书怎么办?我希望能够动态添加书籍。有什么解决方案吗?

如果您对添加一个新的依赖项很满意,那么还有gem,它允许您更轻松地处理嵌套表单

这是一个附加的依赖项,但添加新关联记录的代码很简单,如下所示:

<%= form_for author do |f| %>
  ...
  <%= f.fields_for :books do |book| %>
    <%= render 'book_fields', f: book %>
    <%= link_to_add_association 'add book', f, :books %>
  <%end%>

...

如果您对添加一个新的依赖项很满意,那么还有gem,它可以让您更轻松地处理嵌套表单

这是一个附加的依赖项,但添加新关联记录的代码很简单,如下所示:

<%= form_for author do |f| %>
  ...
  <%= f.fields_for :books do |book| %>
    <%= render 'book_fields', f: book %>
    <%= link_to_add_association 'add book', f, :books %>
  <%end%>

...
author.rb

accepts_nested_attributes_for :books,
    :allow_destroy => true,
    :reject_if     => :all_blank
在您的视图文件中

<div class="bank_account_details">
  <%= f.fields_for :bank_account_details do |builder| %>
    <p>
    Book: <%= builder.text_field :name %>
          <%= builder.check_box :_destroy %>
          <%= builder.label :_destroy, "Remove Book" %>
    </p>
  <% end %>
<div>
<%= link_to_add_fields "Add Book", f ,:books %>
author.rb

accepts_nested_attributes_for :books,
    :allow_destroy => true,
    :reject_if     => :all_blank
在您的视图文件中

<div class="bank_account_details">
  <%= f.fields_for :bank_account_details do |builder| %>
    <p>
    Book: <%= builder.text_field :name %>
          <%= builder.check_box :_destroy %>
          <%= builder.label :_destroy, "Remove Book" %>
    </p>
  <% end %>
<div>
<%= link_to_add_fields "Add Book", f ,:books %>

请检查我的答案,让我知道它是否有效。您可以使用中的
link\u添加
功能。请检查我的答案,让我知道它是否有效。您可以使用
link\u添加
功能。这看起来确实不完整。rails中不存在Afaik
link\u to\u add\u字段的方法。
链接到添加字段
如何知道要呈现什么?您使用哪个gem来提供此功能?这看起来非常不完整。rails中不存在Afaik
link\u to\u add\u字段的方法。
链接到添加字段
如何知道要呈现什么?您使用哪个gem来提供此功能?