У меня есть система, которая позволяет пользователям или гостям написать отзыв. Если пользователи пишут отзыв, это связано с их user_id. Если гости пишут отзыв, им предлагается указать имя пользователя, которое хранится в столбце «гость» в базе данных отзывов.Неопределенный метод в контроллере профессоров
Я не совсем уверен, как это сделать, но то, что я сделал с professor_controller является:
def show
@review = Review.where(professor_id: @professor.id).order("created_at DESC")
@avg_review = @review.average(:hw)
if @review.user_id = !nil
@user = User.where(id: @review.user_id)
else
@user = @review.guest
end
render
end
Однако, это приводит к ошибке:
NoMethodError in ProfessorsController#show
undefined method `user_id=' for #<Review::ActiveRecord_Relation:0x007fed19228e28>
Я получаю это ошибка даже до того, как я поставил оператор if. У меня была такая же проблема, когда мой контроллер выглядел так:
def show
@review = Review.where(professor_id: @professor.id).order("created_at DESC")
@avg_review = @review.average(:hw)
@user = User.where(id: @review.user_id)
end
@re просмотр отлично работает, поэтому @avg_review. Таблица отзывов имеет столбец user_id, а таблица Users имеет столбец id.
'@review.user_id =! Nil' - Вы не имеете в виду '@review.user_id! = Nil'? –