"ボタン"に関連付けられた "メッセージ"に関連付けられたネストフォーム "レター"があります。Railsのネストされたフォーム、空白の場合は拒否、編集時のレコードの削除
class Letter < ApplicationRecord
validates :campaign_name, :presence => true
belongs_to :core_bot
has_many :messages, dependent: :destroy
has_many :cards, dependent: :destroy, inverse_of: :letter
has_many :filters, dependent: :destroy
has_many :analytic_deliveries, dependent: :destroy
has_many :analytic_reads, dependent: :destroy
has_many :analytic_sends, dependent: :destroy
accepts_nested_attributes_for :filters, allow_destroy: true, :reject_if => :all_blank
accepts_nested_attributes_for :messages, allow_destroy: true, :reject_if => :all_blank
accepts_nested_attributes_for :cards, allow_destroy: true, :reject_if => :all_blank
end
私のメッセージモデル::私は "BUTTON_TEXT" と "button_url" は空欄となっている場合は、ボタンのエントリを保存しない
class Message < ApplicationRecord
validates :content, :presence => true
belongs_to :letter, optional: true
has_many :buttons, dependent: :destroy
accepts_nested_attributes_for :buttons, :reject_if => Proc.new { |att| att[:button_text].blank? && att[:button_url].blank? }, allow_destroy: true
end
は、ここに私の手紙モデルです。しかし、編集時に、ボタンが作成され、そのボタンを削除したい場合(「button_text」と「button_url」の空白)、レコードを削除したいと考えています。
どうすればいいですか?私はafter_actionメソッドをやってみることを考えましたが、もっと良い方法がありますか? button_text
とbutton_url
の両方のための :allow_blank => true, on: :edit
も
属性、あなたMessage
モデルから:reject_if
ステートメントを削除し、存在を検証:、唯一の編集上の空白のエントリを許可し、指定されたアクションを使用してButton
モデルに検証を追加するには
作成時にbutton_textフィールドとbutton_urlフィールドが空白でない場合。次に、編集時のボタンフィールドが入力されます。 – AlphaNico
削除ボタンを追加しますか?私はこれがどのように機能するのか分かりません。 – AlphaNico
はい!しかし、ユーザーがボタンフィールドの作成時に入力したものを削除すると(彼はフィールドを空白にします)、ボタンの入力は私のモデルで拒否されるので更新されません:/ – AlphaNico