2014-04-06 79 views
0

我重寫了我的腳手架創建功能後,使其與我的Concert模型相關聯。當我嘗試提交表單創建一個檢討,雖然我得到一個錯誤說rails應用程序未定義類的方法

未定義的方法`爲#Class評論:0xab9972c>

def create 
    @review = Concert.reviews.create(review_params) 
end 

我的演唱會模式看起來像這樣

class Concert < ActiveRecord::Base 

validates_presence_of :artist 
validates_presence_of :venue 
validates_presence_of :date 

has_many :reviews 
end 

和我的評價模型看起來像這樣

class Review < ActiveRecord::Base 

    validates_presence_of :artist 
    validates_presence_of :venue 
    validates_presence_of :date 

    belongs_to :user 
    belongs_to :concert 
end 

我還在我的遷移文件中添加了這些關係,但仍然出現錯誤。有人可以向我解釋是什麼導致了這一點,以及我如何能夠創建屬於音樂會的評論?

回答

1

該協會has_many :reviews是一種實例方法。我懷疑,在你創建方法,你想是這樣的:

def create 
    @concert = Concert.new 
    @concert.save 
    @review = @concert.reviews.create(review_params) 
end 
+0

我試過了,現在它說:「你不能調用創建除非父保存」 所以我猜我需要做的音樂會。創造而不是。新的 – parameter

+0

對不起。是的,你需要首先執行'@ concert.save'。如果您有任何必填字段或其他驗證,您必須在保存之前填寫這些字段。 –

相關問題