SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS

    ASUS

    22 EKİM 2005
  • DragsterMC Gaming

    DragsterMC G

    30 HAZİRAN 2013
  • Ralph Phillips

    Ralph Philli

    5 Aralık 2006