我有Author
和Book
型号。作者可以有多个Book
,但一本书只能有一个Author
。
在创建新Author
期间,如何添加"新书"按钮,它将为Author
表单添加fields_for?我希望能够添加多个Book
。到目前为止,我找到的solution只是添加固定数量的fields_for,如下所示:
<%= form_with(model: author, local: true) do |form| %>
...
<% 5.times do %>
<%= form.fields_for :books do |books| %>
...
<% end %>
<% end %>
...
<% end %>
我不希望它像这样,如果作者有超过5本书怎么办?我希望能够动态添加书籍。任何解决方案?
答案 0 :(得分:3)
答案 1 :(得分:0)
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 %>
在控制器中添加参数
params.require(:author).permit(:name, books_attributes: [:id, :name, :_destroy])