ユーザーは自分の誕生日を追加できるフォームがあります。今現在、誰かがこのフォームを送信すると、入力された日付が常に値を持つので、彼は誕生日を追加します。Rails:フォームに指定したときの更新属性のみ
チェックボックスを追加する方法はありますか?チェックされている場合のみ、誕生日をレコードに保存する必要がありますか?チェックボックスにチェックが入っていない場合は、birthday
の現在の値を削除する必要があります。コントローラで
= simple_form_for resource, as: resource_name, url: registration_url(resource_name) do |f|
= f.input :another_field
= f.input :birthday_set?, as: :boolean # or something else?
= f.input :birthday
= f.input :submit
この最も単純な方法は、birthday_setパラメータを追跡するbefore_saveコールバックを使用し、falseの場合はbirthdayをnullに設定することです。http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html – atomAltera
@atomAltera is not私は 'attr_accessor'も必要とするので、より簡単な方法があります。 – jonhue
コントローラレベルでこれを解決する必要があります。モデル作成に必要なすべてのフィールドを返すcreate_paramsヘルパーがあるとします。そのヘルパーの内部でこのチェックを行うことができます。 – atomAltera