[英]Rails: How to make nested form only do validation for the outside model?
[英]Rails nested model validation only runs when something is filled
我有一個看起來像這樣的表格:
<%= form_with model: @user, url: wizard_path, method: :patch, local: true do |f| %>
<%= f.fields_for :asset_transfers do |asset_transfer_form| %>
<%= asset_transfer_form.text_field :account_number, autofocus: true, class: "form-control" %>
<div class="invalid-feedback"> <%= @user.errors.messages[:"asset_transfers.account_number"].join(", ") %> </div>
<%= asset_transfer_form.text_field :institution_number, class: "form-control" %>
<div class="invalid-feedback"><%= @user.errors.messages[:"asset_transfers.institution_number"].join(", ") %></div>
<% end %>
<% end %>
這是我的協會:
user.rb
has_many :asset_transfers, dependent: :destroy
accepts_nested_attributes_for :asset_transfers, allow_destroy: true
asset_transfer.rb
belongs_to :user
validates :account_number, :institution_number, presence: true, numericality: true
填寫表單時,如果我為兩個字段都提交空白,則不會顯示任何錯誤,並且@user.save
返回true
。 但是,如果我在其中一個字段中輸入隨機字符串並提交, @user.save
顯示錯誤,並且@user.save
現在返回false。 我真的不知道為什么會這樣,並且在Google上找不到任何相關內容。 感謝您的幫助!
編輯:這些字段的類型為bigint
。 我寫了一個遷移文件將其更改為string
,現在可以正常工作了。 當我提交任何內容時,看到的錯誤是空白而不是數字。 仍然有興趣知道為什么驗證不適用於bigint
。
您可以將reject_if: :all_blank
檢查添加到accepts_nested_attributes_for
以允許盡管數據類型也不允許空嵌套條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.