現在、Rails でアプリケーションを作成していましてご相談です。
モデルの設計や実装方法についてご相談したく投稿させていただきました。
やりたいこと
ユーザーがプロフィールに出張可能エリアを複数の「都道府県、市区町村」と複数の「路線名、駅名」を登録できるようにしたいと思っています。
例)
Aさん
対応可能エリア
東京都 | 渋谷区、目黒区、世田谷区 |
神奈川県 | 川崎市、横浜市 |
対応可能駅名
山手線|渋谷駅、恵比寿駅、目黒駅|
東急東横線|池尻大橋駅、三軒茶屋駅、駒沢大学駅|
銀座線|渋谷駅、表参道駅、外苑前駅|
悩んでいること
以下のような形式でリレーションを作っていかないといけないのかなと想像しているのですが、User と「市区町村」「駅名」のリレーションの作り方がよくわかっていません。
(もし根本的に考え方や設計が間違っていそうでしたら、ご指摘いただけると嬉しいです)
ユーザー(1)⇔(多)中間テーブル(多)⇔(1)都道府県
都道府県(1)⇔(多)市区町村
ユーザー(1)⇔(多)中間テーブル(多)⇔(1)路線名
路線名(1)⇔(多)駅名
User model
has_many :user_prefectures
has_many :prefectures, through: :user_prefectures
has_many :citys through: :?
has_many :user_lines
has_many :lines, through: :user_lines
has_many :stations through: :?
補足情報
ruby 2.4.0p0
Rails 5.0.5
最後に
基本的な質問で恐縮ですが、アドバイスをいただけると大変ありがたいです。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/23 04:22
2017/09/23 04:51
2017/09/23 05:19 編集