Ruby on Rails
Wednesday, May 22, 2019
Do you have an error or something?
I don't get why you do that `joins(:races)`, maybe I'm missing something but sound like you could just do `where(id: races)`.
You can call `to_sql` on the query to see the generated SQL query if you want to check what's going on.
I would move this `@races = Race.with_season(params[:season_id]).with_day(params[:day_id]).with_race(params[:_id])` to the controller.
Personally, I would use named scopes instead of class methods
scope :with_season, -> (season_id) { includes(:seasons).where(seasons: {id: season_id}) }
#etc
Anyway, I don't understand if you have an error or something or what.
El jue., 23 may. 2019 a las 0:09, David Merrick (<merrickdav@gmail.com>) escribió:
--I am trying to Querying Multiple Database table and display results in races index.html.erbSchema is thisActiveRecord::Schema.define(version: 2019_05_21_043953) docreate_table "days", force: :cascade do |t|t.date "day"t.integer "season_id"t.datetime "created_at", null: falset.datetime "updated_at", null: falset.index ["season_id"], name: "index_days_on_season_id"endcreate_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: falset.datetime "updated_at", null: falset.index ["day_id"], name: "index_races_on_day_id"t.index ["season_id"], name: "index_races_on_season_id"endcreate_table "seasons", force: :cascade do |t|t.integer "year"t.datetime "created_at", null: falset.datetime "updated_at", null: falseendendA typical query in rails console --sandbox Querying all the races for that daySELECT day,class,racename FROM RACESINNER JOIN DAYS on days.id = races.day_idINNER JOIN SEASONS on days.season_id = seasons.idWHERE 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 modelclass Race < ApplicationRecordbelongs_to :seasonbelongs_to :dayclass << selfdef with_season(seasons)joins(:seasons).where(seasons: {id: seasons})enddef with_day(days)joins(:days).where(days: {id: days})enddef with_race(races)joins(:races).where(races: {id: races})endendendI want to select the Season ,the day and the racewith 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 pleaseCheers 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+unsubscribe@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.
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+unsubscribe@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/CAPS3bcDuiFydz%3DRpGTqtjEC5qKU9h-umCi9dRTW%2B6YX6Sd0v2Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment