【发布时间】:2014-09-17 01:15:58
【问题描述】:
在我的 cmets 控制器中,我有以下内容
类 CommentsController
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所在的位置,
@cmets_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>
为什么这里有这么多东西是零?当代码正常运行时,我对 build_from 方法的所有参数都与之前相同。
尝试调用@comment.save时的终端输出是
undefined method 'user' for #<Comment:0x5d1b1b0>
我不确定这意味着什么。我有一个 user_id 关联。我在参数哈希中没有看到用户参数。
任何帮助将不胜感激。
【问题讨论】:
-
发布您的
Comment模型。
标签: ruby-on-rails acts-as-commentable