前提
初心者です。
Ruby on Railsで転職活動者のための就活ツールアプリを作っています。
求人を見ながら、必要な情報だけを選んで記述・保存をして、あとで振り返ることのできるアプリです。
求人探しで検索条件を変更すると同じ会社が出てきたり、一度見た会社かどうか覚えていないために、
「同じ求人を2度以上見て、大量の文字情報の中から少量の欲しい情報を探す」
というような時間の無駄の発生を、しっかりと初めから必要な情報だけ抜き出して記録しておくことで解決できるようなアプリを作っています。
困っていること実現したいこと
なるべく無駄を省きたいので、求人に記載されている項目の順番に合わせて入力フォームの項目を用意したいです。
しかし、例えばフォームの中で複数のモデルの項目が以下のように交互になってしまう場合、どのようにフォームを作成したら良いのでしょうか?
入力フォーム
社名(Companyモデル)
↓
使用言語(Languageモデル)
↓
会社が応募者に求める経験年数(Companyモデル)
↓
送信
上記説明
使用言語をLanguageモデルという形でCompanyモデルから切り離した理由は、使用言語はRuby,PhP,Javaなど複数あり、
Companyモデルにlanguageカラムを持たせて使用言語を全て文字列などで一つのカラムに保存するのは気持ち悪いと思ったからです。(この判断が正しいのかはわかりません)
できること、試したこと(以下の例はslim表記で、モデルはCompanyとCompany_detailです)
lang
1= form_with model: @company, local: true do |f| 2 3 = f.label :name 4 = f.text_field :name 5 6 = f.fields_for :company_detail do |company_detail| 7 8 = company_detail.label :description 9 = company_detail.text_area :description 10 11 = f.submit "とうろく"
このようにfields_forでネストして複数のモデルを1つのフォームに入れて送信する方法は実践してできることがわかりました。
問題は、上記で言えばcompany_detailの後に、またCompanyモデルに紐づく情報の項目を作りたい時に、どのように記述したら良いかということです。
質問
フォーム モデルAのカラム モデルBのカラム モデルAのカラム 送信
という形で複数モデルが、交差する時、どのようにフォームを入力したら良いでしょうか?
そもそもテーブルの設計を見直した方が良いなどの、根本的な部分の修正でも問題ありません。
その場合、このようにしたら良いというアドバイスを共有していただける方がいましたらご協力いただけると大変助かります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。