Railsの検証についてサポートが必要です。別のフィールドに特定の値がある場合、1つのフィールドが入力されていることを検証する必要があります。コードは以下のとおりです。
ライセンスが拡張選択されている場合は、拡張ライセンスタイプを入力する必要があります。フォームに入力して拡張を選択し、extended_license_typeを何もチェックしないと、正常に検証され、エラーメッセージは表示されません。
ライセンスフィールドはドロップダウンで、extended_license_typeはチェックボックスのセットです。
validates :license, presence: true
validates :extended_license_type, presence: true, :if => :license_extended?
private
def license_extended?
license == 'extended'
end
これがフォームのチェックボックスのセットです。おそらく私の問題はそれらにあり、検証にはありません。どんな助けでもありがたいです。
<%= f.check_box :extended_license_type, {}, "ur" %>
<%= f.label :extended_license_type, "Unlimited Reproduction" %>
<%= f.check_box :extended_license_type, {}, "ms" %>
<%= f.label :extended_license_type, "Multi-User/Seat" %>
<%= f.check_box :extended_license_type, {}, "pr" %>
<%= f.label :extended_license_type, "Product for Resale" %>
<%= f.check_box :extended_license_type, {}, "ers" %>
<%= f.label :extended_license_type, "Product for Electronic Resale" %>
<%= f.check_box :extended_license_type, {}, "ed" %>
<%= f.label :extended_license_type, "Product for Electronic Distribution" %>
<%= f.check_box :extended_license_type, {}, "ep" %>
<%= f.label :extended_license_type, "Extended Legal Protection" %>
これがライセンスフィールドのドロップダウンです。
<%= f.select :license, [["Standard", "standard"], ["Extended", "extended"]] %>