formtastic_cocoon(formtasticのjqueryバージョン)を使用したマルチレベルのネストされたフォームがあります。
私はある意味でいくつかの検証を行おうとしています
値がis_numericの場合 データベースに挿入 そうでなければします テキストのデータベースルックアップ IDを関連付けとして挿入 終わり
私はaccepts_nested_attributes_forに:ifオプションがあることを望んでいましたが、どうやら:reject_ifしかありません。
accepts_nested_attributes_forの一部として説明するような検証を作成する方法はありますか?
-----------------------Zubinの応答に従って更新---------------------- -----
Zubinは方法で正しい方向に進んでいると思いますが、正しく機能させることができないようです。私が使用している方法は
def lookup_prereq =(lookup_prereq) lookup_prereq.blank? ケースlookup_prereq lookup_prereq.is_a?(数値)==trueの場合 self.task_id = lookup_prereq そうしないと self.task = Task.find_by_title(lookup_prereq) 終わり 終わり
この関数をトリガーすると、self.task_idはTask.idではなく「0」としてデータベースに配置されます。
私は何か他のものが欠けているのだろうかと思っています。メソッドが実際に呼び出されているかどうかは完全にはわかりません。私は言う必要はありません
lookup_prereq(attr [:prereq_id)
ある時点で?
-------------------さらなる編集-----------------------私は私ができることから考えるデータベースの値と同じ名前で名前が付けられている場合にのみメソッドが呼び出されることがわかったため、メソッドを次のように変更しました
defcompleted_task =(completed_task)
残念ながら、これでもデータベースの値は0になります。