Modellerimden veri almanın yollarını bulmakta zorlanıyorum. İki model arasında bir has_many ilişkisi var. Kullanıcı & Olay. Bağlantı tablosunu yaptım çünkü bağlantı tablosunda saklanacak ek bilgilere ihtiyacım vardı. Sorun şu ki, bağlantı tablosundan veri alamıyorum.ActiveRecord'un birleştirme tabloları ve bilgi toplama [RAILS]
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
Ve bağlantı tablosunda:
Benim modelleri şunlardır olanlar modeller için
class EventUser < ActiveRecord::Base
belongs_to :event
belongs_to :user
end
Benim db şema: İçinden Bunu test etmek çalışıyorum
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
önce konsol (veri tabanı üzerinde veri var) Bu verileri daha sonra bir masa üzerinde göstermek için toplamaya çalışıyorum.
User.joins(:events).select('*')
Ama bu bana verilerin karışımını verir:
denedim. Ancak, bağlantı tablosunda (event_users) bulunan pozisyon alanını vermez.
Verileri almak için sorgu ile mümkünse yardım isterim. Şimdiden teşekkürler.
Yani tüm kullanıcıları ve tüm olayları ister misin? – trh
Üzgünüz, Kullanıcılar bilgilerini, event_users ve olay bilgilerini istiyorum. – Nikos4Life
Gerçekten nasıl kullanmak istediğinize bağlıdır - çünkü User.all.each {| kullanıcı | user.events} – trh