2016-12-20 26 views
0

私がやってみるのはとても簡単です。条件を表示/非表示のフィールドを表示/非表示にする

フォームには、入力するオプションのフィールドがあります。フォームの外観をきれいにするために、単純なリンクをフィールドに追加して、フィールドを追加し、下のオプションフィールドをjsを介して妨げずに表示したいと思います。

フィールドが存在する場合、フィールドはデータベースに保存されます。フィールドには削除リンクもあります。この削除リンクをクリックすると、フィールドが削除され、保存時にデータベースからその値も削除されます。

かなりシンプルですが、これに簡単なアプローチはありませんでした。ソリューション全体には、データベースにデータを削除するためにレコードが非表示になっていたかどうかを確認するために、隠しデータをコントローラに渡すなど、さまざまな側面があります。

私はこの目的のために既に最適化された宝石が好きですが、何も見つかりませんでした。私が見つけたのは関連するレコードを対象としていますが、そうではありません。これらは関連ではなく、同じモデルのオプション属性です。

nested_form_fields宝石のも、それは、チェックボックスやラジオボタンを必要とするため、適切ではないがトリガーと私はきれいに見えると信じフィールドリンクを削除/フィールドを追加しないされます。

この簡単なことを実現する宝物はありますか?

答えて

0

隠しデータなどを送信するのではなく、display:none以外のすべてのフォームフィールドを読み込んでください。ユーザーが '表示'ボタンをクリックすると、そのフィールドが表示されます。 hideボタンをクリックすると、フィールドをnullに設定して非表示にします。

フォームがコントローラに到達すると、(値を削除した場合と同じように)非表示フィールドのdbにnull値が保存されます。

+0

意味があります。これを正確に行い、jsコードの作成を避けるための宝石があるかどうか不思議です。 – Martin

+0

私の知る限りではありません。 simple_forms + jqueryはまったく時間がかかる – Brad

関連する問題