2012-04-15 57 views
0

我想通過has_many關聯對與另一個模型(:查詢)相關的模型屬性(:test)具有隻讀訪問權限。當我在方法中使用關係回調時出錯

我可以在創建並關聯新的查詢時獲取關聯的測試對象,但我無法使用關聯的測試對象:`before_create'方法中的測試屬性。

從應該是什麼我讀的API documentation我能夠使用聯想法(@test = @query.test.whatever)使用「無所謂」屬性,但我收到以下錯誤,當我嘗試運行代碼:private method 'test' called for nil:NilClass

:查詢有關:測試在belongs_to關係......

我已經試過@test = @ query.test.build實例測試對象在我的方法,但也不管用。

+0

你可以發佈兩個模型的代碼嗎? – 2012-04-15 17:18:11

回答

1

你只是得到一個名稱衝突。 Ruby中的每個對象都有其私有方法test

+0

這就是我想知道的......歡呼聲。 – 2012-04-15 17:26:36

+0

我將「test」模型重命名爲「testcase」,我仍然得到相同的錯誤。 '私有方法'testcase'調用nil:NilClass'。很煩人。我確信我只是在做一些愚蠢的事情,但我無法弄清楚它...... – 2012-04-16 15:18:39

+0

重命名模型是不夠的。你必須重新命名你的關聯('belongs_to:testcase')。在你的數據庫中還有一個名爲'tests'的表。你也必須解決這個問題(最簡單的方法:在模型中寫入'set_table_name:testcases')。 – jdoe 2012-04-16 15:36:27

相關問題