I am trying to Querying Multiple Database table and display results in races index.html.erb
Schema is this ActiveRecord::Schema.define(version: 2019_05_21_043953) do create_table "days", force: :cascade do |t| t.date "day" t.integer "season_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["season_id"], name: "index_days_on_season_id" end create_table "races", force: :cascade do |t| t.boolean "display" t.text "racename" t.text "class" t.integer "season_id" t.integer "day_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["day_id"], name: "index_races_on_day_id" t.index ["season_id"], name: "index_races_on_season_id" end create_table "seasons", force: :cascade do |t| t.integer "year" t.datetime "created_at", null: false t.datetime "updated_at", null: false end end A typical query in rails console --sandbox Querying all the races for that day SELECT day,class,racename FROM RACES INNER JOIN DAYS on days.id = races.day_id INNER JOIN SEASONS on days.season_id = seasons.id WHERE days.id = '46' "2019-04-20" "Pee Wee" "Pee Wee Div 2" "2019-04-20" "Pee Wee" "Pee Wee Div 1" "2019-04-20" "Juniors" "Juniors Div 2 Shilo Tocher Cup" "2019-04-20" "Juniors" "Juniors Div 1 Gavin Tavendale Cup" "2019-04-20" "Solo" "Solo's Robin McKinnon Plate" "2019-04-20" "Side Cars" "Sidecars Tony Schafer Cup" I have this as the race model class Race < ApplicationRecord belongs_to :season belongs_to :day class << self def with_season(seasons) joins(:seasons).where(seasons: {id: seasons}) end def with_day(days) joins(:days).where(days: {id: days}) end def with_race(races) joins(:races).where(races: {id: races}) end end end I want to select the Season ,the day and the race with something like this in races index.html.erb <div class="control-group"> <%= f.label :day_id , class: 'control-label' %> <div class='controls'> <%= collection_select(:race, :day_id, Day.all, :id, :day, {}, {:multiple => false}) %> </div> </div> So far I have this for races index.html.erb <p id="notice"><%= notice %></p> <h1>Races</h1> <table> <thead> <tr> <th>Display</th> <th>Racename</th> <th>Class</th> <th>Season</th> <th>Day</th> <th colspan="3"></th> </tr> </thead> <tbody> @races = Race.with_season(params[:season_id]).with_day(params[:day_id]).with_race(params[:_id]) <% @races.each do |race| %> <tr> <td><%= race.display %></td> <td><%= race.racename %></td> <td><%= race.class %></td> <td><%= race.season %></td> <td><%= race.day %></td> <td><%= link_to 'Show', race %></td> <td><%= link_to 'Edit', edit_race_path(race) %></td> <td><%= link_to 'Destroy', race, method: :delete, data: { confirm: 'Are you sure?' } %></td> </tr> <% end %> </tbody> </table> <br> <%= link_to 'New Race', new_race_path %> Any Questions or suggestions just post please Cheers Dave -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/f0edb9b1-7d29-4e30-bbaf-fa6061744f4f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.