2014-04-06 2 views
0

Я переписал свою функцию создания в своем обзоре эшафот, сделав ее связанной с моей моделью Concert. Когда я пытаюсь отправить форму, чтобы создать отзыв, хотя я получаю сообщение об ошибке говорящегоrails application undefined метод для класса

неопределенных метод `обзоров для #Class: 0xab9972c>

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

Моей Concert модель выглядит следующим образом

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

Я попробовал и теперь он говорит: «Вы не можете позвонить создать, если родитель не будет сохранен» поэтому я предполагаю, что мне нужно сделать концерт. создайте вместо .new – parameter

+0

Извините. Да, сначала вам нужно сделать '@ concert.save'. И если у вас есть какие-либо обязательные поля или другие проверки, вы должны заполнить эти поля перед сохранением. –