rails初心者です。
rails5で勉強中です。
都道府県、駅、路線名が別々もモデルになっておりアソシエーションを組んでおります。
rugy
1#########モデル######### 2#pref.rb(都道府県) 3class Pref < ApplicationRecord 4 has_many :stations 5end 6 7#station.rb(駅名) 8class Station < ApplicationRecord 9 belongs_to :pref 10 belongs_to :line, foreign_key: 'line_id', primary_key: 'line_id' 11end 12 13#line.rb(路線名) 14class Line < ApplicationRecord 15 has_many :stations, class_name: 'Station', foreign_key: 'line_id', primary_key: 'line_id' 16end 17
rugy
1#########コントローラー######### 2#stations_controller.rb 3class StationsController < ApplicationController 4 def index 5 @pref_name = Station.find_by(pref_id: params[:area_id]) 6 @stations = Station.where(pref_id: params[:area_id]) 7 end 8 9 def show 10 end 11 12end 13
rugy
1#########ビュー######### 2#stations/index.html.erb 3 4<div class="container"> 5 <div class="row"> 6 <div class="col-md-12"> 7 <h1><%= @pref_name.pref.name %>|<%= @stations.count %>駅|Stations#index</h1> 8 <p>Find me in app/views/stations/index.html.erb</p> 9 10 <% @stations.each do |station| %> 11 <div class="panel panel-default"> 12 <div class="panel-heading"><%= station.line.line_name %></div> 13 <ul class="list-group"> 14 <li class="list-group-item"><%= station.station_name %></li> 15 </ul> 16 </div> 17 <% end %> 18 </div> 19 </div> 20</div> 21
DBはmysqlで
prefsテーブル
id:integer
pref_cd:integer
name:string
stationsテーブル
id:integer
pref_id:integer
station_cd:integer
station_name:string
line_id:integer
linesテーブル
id:integer
line_id:integer
line_name:string
- 【山手線】
- 大崎
- 【山手線】
- 五反田
- 【山手線】
- 目黒
上記のようになっているのを…
- 【山手線】
- 大崎
- 五反田
- 目黒
- 山手線の駅が全部出力されると…
- 【南武線】
- 矢野口
- 稲城長沼
- 南多摩
と言った具合に路線でグルーピング?して出力したいです。
各駅が持っているline_id(線路のID)をグループ化してどうにかしてeachで回せないかと考えていますが答えがでません。
どのように処理すれば解決しますでしょうか???
ぜひともご教授お願い致します!!!

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/10 09:58
2017/11/10 10:10
2017/11/10 10:41