問題があり、最善の解決策を探しています。
私のアプリケーションには、会社に関するデータを要求するフォームがあります。
このフォームは 3 つのブロックで構成されています。最初のブロックでは、会社に関するデータ (名前、住所など) を要求し、2 番目のブロックでは、この会社内の部門に関するデータ (名前、ヘッド、住所など) を要求します。そして 3 番目のブロックでは、この部門で使用される印刷用紙に関するデータを求めます。たとえば、「印刷に印画紙を使用しますか」、「白黒で印刷しますか」などです。
会社と部門に関する質問には、データベース内に直接対応するものがあります。
たとえば、会社名:
table => firm / field => name
しかし、印刷用紙に関する質問には、データベース内に直接対応するものはありません。しかし、次の 5 つのフィールドを持つ印刷用紙のテーブルがあります。
department_id, color, format, alignment, quality
この 5 つのフィールドは、ユーザー入力に基づいて入力する必要があります。たとえば、ユーザーが「印刷に印画紙を使用しますか?」という質問に回答した場合。次に、次の方法でフィールドに入力する必要があります。
department_id => id, color=> true, format => "DIN A4", alignment => "upright", quality => "high"
このアプリケーションは他の要件に柔軟に対応できる必要があるため、この構造が必要です。
現時点では、会社モデル用の form_for と、この form_for 内に、部門モデル用のネストされた属性を持つ fields_for と、印刷用紙の質問用の select_tag があります。フォームは会社#作成アクションに送信されます。印刷用紙モデルの部門モデル内にネストされた属性を受け入れました。
データを印刷用紙テーブルに入力する方法とタイミング、および適切な department_id を取得する方法。コントローラーで @firm.save の直後に Department.last を使用することを考えました。しかし、正しい部門オブジェクトを取得できるかどうかは 100% 確実ではありません。そのような場合のベストプラクティスはありますか?
助けていただければ幸いです:)