前提・実現したいこと
初めまして。プログラミング初学者です。
Ruby on Railsを用いて既存サービスのコピーを作成したいと考えています。
映画のレビューサイトを作成している途中で、映画やキャストの情報はスクレイピングによって集めようと考えています。
moviesのレコードに映画の情報はスクレイピングにて格納できました。
castsのレコードに出演者の情報はスクレイピングにて格納できました。
castsの情報は各映画の詳細ページにて映画の詳細情報を取得の際にそのページ内のcast情報をついでに取得するという処理を書きました。
特定のcastが出演している映画一覧を出したいので中間テーブルに保存する必要があるのではないかと思い中間テーブルを作成しました。
movies,castsは中間テーブルをthroughするようにしています。
movies,castsはアソシエーションを結んでいます。
最終的には中間テーブルにmovie_idとcast_idを保存することが目的です。
中間テーブルは1つ目のテーブルでレコードが存在し、アソシエーションを結んでいる2つ目のコントローラーでsaveを動かした時にひも付き、生成されるもの、という認識です。
そのため、スクレイピングの処理でもsaveをするので中間テーブルに保存できるのではないかと考えました。
例えばmovieを保存する時にcast_idを一緒に渡らせる処理を書けば・・・と考えましたがコードが全く浮かばず手がつきませんでした。
スクレイピングをしたデータを中間テーブルに保存する手法についてアドバイスをいただければと思います。(コードというよりもアプローチについてご助力願えればと思います。)
試したこと
ダメ元で中間テーブルに手動入力で試して見ましたがproduction環境にcsvファイルを保存しようとしたらforegin_keyエラーで弾かれてしまいました。
あなたの回答
tips
プレビュー