2015-06-21 9 views
0

Все,Не удалось выполнить проверку пользователя не может быть пустым

Я получаю сообщение об ошибке: Не удалось выполнить проверку : Пользователь не может быть пустым. Я получаю эту ошибку, когда я сохраняю комментарий. Может ли кто-нибудь указать мне в правильном направлении?

для комментариев контроллер

class CommentsController < ApplicationController 
def create 
@topic = Topic.find(params[:topic_id]) 
@post = @topic.posts.find(params[:post_id]) 
@comment = @post.comments.new(params.require(:comment).permit(:body)) 

@comment.save!#save the code down in the database 

redirect_to [@topic, @post] 
end 
end 

комментарий модель

class Comment < ActiveRecord::Base 
    belongs_to :post 
    belongs_to :user 

    validates :body, length: { minimum: 5 }, presence: true 
    validates :user_id, presence: true 
    end 

Ошибка на странице при сохранении вниз в базу данных comment

+0

Что вы имеете в виду: «Я попытался с помощью CURRENT_USER из Завещания в @comment переменной экземпляра, но это не работает для меня.» Использует ли ваша модель комментариев поле идентификатора пользователя? – MarsAtomic

+0

Я принял это и обновил вопрос. Да, у него есть поле идентификатора пользователя. Должен ли я создать другую переменную экземпляра для user_id? В контроллере комментариев? – SaintClaire33

+0

Вам нужно лучше объяснить, что здесь происходит. Вы пытаетесь работать с вложенной формой? Это Rails 3? Вы получаете сообщение об ошибке при вызове @ comment.save! или где-то еще? – MarsAtomic

ответ

2

Вы проверяете присутствие пользователя в комментарии, но пользователь не назначен для комментария.

Перед сохранением модели, попробуйте: @comment.user = current_user

+0

Это сработало, спасибо! – SaintClaire33