Ich habe Probleme mit der Suche nach dem Weg, um die Daten von meinen Modellen zu bekommen. Ich habe eine Beziehung has_many durch zwischen zwei Modellen. Benutzer & Ereignis. Ich habe die Verknüpfungstabelle erstellt, weil ich zusätzliche Informationen benötigt habe, die in der Verknüpfungstabelle gespeichert werden. Das Problem ist, dass ich die Daten aus der Verknüpfungstabelle nicht abrufen kann.ActiveRecord verbindet Tabellen und sammelt Informationen [RAILS]
Meine Modelle sind die folgenden:
class User < ActiveRecord::Base
has_many :event_users
has_many :events, through: :event_users
end
class Event < ActiveRecord::Base
has_many :event_users
has_many :users, through: :event_users
end
Und die Verknüpfungstabelle:
class EventUser < ActiveRecord::Base
belongs_to :event
belongs_to :user
end
Mein db Schema für diese Modelle:
create_table "users", force: :cascade do |t|
t.text "email", default: "", null: false
t.text "encrypted_password", default: "", null: false
t.text "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.text "current_sign_in_ip"
t.text "last_sign_in_ip"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "steam_id_64"
t.text "nick"
t.text "name"
t.integer "age"
t.text "country"
t.text "city"
t.text "gender"
t.boolean "admin"
end
create_table "events", force: :cascade do |t|
t.text "event_type"
t.text "name", null: false
t.datetime "starting_date"
t.datetime "ending_date"
t.integer "eventable_id"
t.text "eventable_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "event_users", force: :cascade do |t|
t.integer "event_id"
t.integer "user_id"
t.integer "position"
t.integer "score_points"
t.text "team_name"
t.integer "team_score_points"
end
ich dies zu testen versuche durch Konsole zuerst (Ich habe Daten auf der Datenbank arbeiten) Ich versuche, diese Daten zu sammeln, um es später auf einer Tabelle anzuzeigen.
Ich habe versucht:
User.joins(:events).select('*')
Aber es gibt mir eine Mischung aus Daten. Aber es gibt nicht das Positionsfeld auf der Verknüpfungstabelle (event_users).
Ich möchte Hilfe wenn möglich mit der Abfrage, um die Daten zu erhalten. Danke im Voraus.
So möchten Sie alle Benutzer und alle Veranstaltungen? – trh
Nein Entschuldigung, ich möchte die Benutzerinfo, event_users info und event info. – Nikos4Life
Es hängt wirklich davon ab, wie Sie es verwenden möchten - weil Sie User.all.each {| user | user.events} – trh