В моем комментарии контроллера, У меня есть следующиеactions_as_commentable_with_threading - метод «build_from» не работает?
класса CommentsController < ApplicationController
def create
@comment_hash = params[:comment]
#@comment = comment.new(comment_params)
@obj = @comment_hash[:commentable_type].constantize.find(@comment_hash[:commentable_id])
@comment = Comment.build_from(@obj, current_user.id, @comment_hash[:body])
binding.pry
#...
В точке, где binding.pry
есть,
@comments_hash является
{"body=>"asdf comment body",
"commentable_type"=>"Hack",
"commentable_id"=>"2"}
@obj является
#<Hack id: 2, created_at: "2014-09-16 00:00:00",
updated_at: "2014-09-16 00:00:00",
body: "some text",
user_id: 1,
comment_threads_count: 0>
Но @comment выходы
#<Comment id: nil,
commentable_id: 2,
commentable_type: "Hack",
title: nil, body: "asdf,
comment body",
subject: nil,
user_id: 1,
parent_id: nil,
lfg: nil, rgt:
nil, created_at: nil,
updated_at: nil>
Почему так много вещей, NIL здесь? Все мои аргументы для метода build_from
идентичны ранее, когда код работал правильно.
терминал выводится при попытке вызова @comment.save
является
undefined method 'user' for #<Comment:0x5d1b1b0>
Я не уверен, что это значит. У меня есть ассоциация user_id. Я не вижу параметр пользователя в моем параметре hash.
Любая помощь будет высоко оценена.
Опубликовать свою модель «Комментарий». – Substantial