20

Rails geliştirme için nispeten yeni ve küçük bir dernek sorunu yaşıyorum. İlişkilendirilmiş modelden farklı bir ilişki kurmayı isterim. Rails belongs_to ilişkilendirme (with: class_name) nil verir

Aşağıdaki 2 modelleri var şu şekildedir:

class User < ActiveRecord::Base 
    has_many :events 
end 

class Event < ActiveRecord::Base 
    belongs_to :admin, :class_name => "User" # So we can call event.admin to retrieve the User who owns this Event 
end 

Bir Kullanıcıyı inşa:

irb> user = User.find(1) 
irb> user.events 
=> [#<Event id: 1, title: "New Event", user_id: 1, created_at: "2011-06-09 06:41:09", updated_at: "2011-06-09 06:41:10">] 

irb> event = Event.find(1) 
irb> event.user_id 
=> 1 
irb> event.admin 
=> nil 

:

event = event.create! :title => "New Event" 

user = User.create! :username => "thinkswan" 
user.events << event 
user.save 

Ben konsol içine hop

Aşağıdakileri almak admin çağrısının neden işaret ettiği Kullanıcıyı iade etmediğini açıklayabilir mi? Teşekkürler!

+5

+1 soru büyük adam iyi bir örnek de dahil olmak üzere .. Sonunda anladım ':' belongs_to' ait class_name' seçenek anlamına gelir .. [docs] (http://guides.rubyonrails.org/v2.3.11/association_basics.html) örneğinin çok net olmadığı – abbood

cevap

46

Örneğin hem :class_name ve :foreign_key belirtmek gerekir:

belongs_to :admin, :class_name => "User", :foreign_key => "user_id" 
+0

Basit bir şey olacağını biliyordum. Çok teşekkürler, Jits! Bunu takdir ediyorum! –

+0

Sorun değil. Gelecekte dikkat çekmek için bir tane :) – Jits

+0

ikinize de şükrediyorum, sonunda şunu anladım: admin değişken ismi, class_name değil! – njzk2

İlgili konular