3 Ocak 2009, CUMARTESİ
Raylar has_many :Birleşim Model Ekstra özellikleri ile Bul
Hem Ruby ve Rails için yeni ama şimdiye kadar hiçbir şey belli, haha anlamına gelir) kitap eğitimimi aldım.
İki model var, Olay ve Kullanıcı bir tablo ile EventUser katıldı
class User < ActiveRecord::Base
has_many :event_users
has_many :events, :through => :event_users
end
class EventUser < ActiveRecord::Base
belongs_to :event
belongs_to :user
#For clarity's sake, EventUser also has a boolean column "active", among others
end
class Event < ActiveRecord::Base
has_many :event_users
has_many :users, :through => :event_users
end
Bu proje insanların kaydolmak ve kendi adı verilen bir olay için tırmalama dışarı izlemek için bir takvim. Çok iyi bir yaklaşım olduğunu düşünüyorum, ama böyle bir şey yapamam:
u = User.find :first
active_events = u.events.find_by_active(true)
Olaylar aslında bu ekstra veri olmadığı için, EventUser modeli yok. Yapabileceğim:
u = User.find :first
active_events = []
u.event_users.find_by_active(true).do |eu|
active_events << eu.event
end
Bu aykırı gibi görünüyor"". raylar yolu Biri bana, bu uzun bir süre için beni rahatsız ediyor bu gece (bu sabah) bu konuda aydınlatabilir mi?
Çok teşekkürler!
CEVAP
3 Ocak 2009, CUMARTESİ
Nasıl Kullanıcı modeli böyle bir şey ekleme hakkında?
has_many :active_events, :through => :event_users,
:class_name => "Event",
:source => :event,
:conditions => ['event_users.active = ?',true]
Bundan sonra sadece çağırarak bir kullanıcı için aktif olaylar almak mümkün olmalıdır:
User.first.active_events
Bunu Paylaş:
Raylar Model eşit olmadığı bul...
Model sınıf adı denetleyicisi sınıf ad...
Nasıl otomatik olarak Raylar has_many ...
Haskell fonksiyonları/model-kontrol/te...
En iyi raylar ile html5 veri özellikle...