2013-04-12 33 views
1

我希望這裏有人能幫助我。我收到以下錯誤:NameError與不存在的類

uninitialized constant Subscription::SubscriptionContactDatum 

問題是SubscriptionContactDatum不存在。我有一個名爲SubscriptionContactData的課程,但不是SubscriptionContactDatum。經過一些日子想知道發生了什麼,我發現問題來自依賴關係。

有相關的兩個類:SubscriptionSubscriptionContactDataSubscription可以有許多ContactData每個ContactData屬於2個不同的SubscriptionsSubs_cont_datas(id, subscription_id1, subscription_id2)

不過,我覺得這個問題是存在的,所以我嘗試添加第二個:belongs_toContacDatas沒有運氣。

subscription.rb

class Subscription < ActiveRecord::Base 
    has_many :subscription_contact_data, :dependent => :destroy 
end 

subscription_contact_data.rb

class SubscriptionContactData < ActiveRecord::Base 
    belongs_to :subscription 
end 

注1:如果我刪除:dependent => :destroy FON Subscriptions.rb錯誤消失,但DB拋出一個foreing鍵約束錯誤(明顯)。所以刪除:dependent不是一個選項...

注2:我使用Ruby 1.8.9,Rails的3.0.1

+0

「datum」聽起來像Rails的多元化不正確單數化。也許嘗試inflections.rb中的inflect.uncountable%w(SubscriptionContactData)。 – mahemoff

回答

0

我認爲,問題不在於:依賴=>破壞。這是「試圖複製關聯名稱的導軌」的問題。所以,你可以嘗試下面的行。

has_many :subscription_contact_data, :class_name => 'SubscriptionContactData' 

這應該可以解決您的問題。

希望它有幫助。

+0

謝謝!這解決了問題:) – itziki