Если вы посмотрите на хэш параметров в вашем журнале, вы увидите это:
{ "utf8"=>"✓",
"authenticity_token"=>"cxQm2K2xwsyw0DY2XLNvkcMQI+wM96LpEENbfQqxu5c=",
"comment"=> {
"post_id"=>"6", # <-- there's your post_id
"body"=>"This is the comment" },
"commit"=>"post" }
Итак, идентификатор записи есть, но он внутри хеша comment
. Итак, в вашем действии создания вам просто нужно изменить на:
def create
@post=Post.find(params[:comment][:post_id])
@comment = @post.comments.build(params[:comment])
@comment.save
respond_with( @comment, :layout => !request.xhr? )
end
Однако вы должны немного упростить действие создания.
def create
@comment = Comment.new(params[:comment])
@comment.save
respond_with( @comment, :layout => !request.xhr? )
end
Поскольку post_id
находится в параметрах comment
, комментарий будет автоматически ассоциироваться с публикацией при ее создании без необходимости поиска записи. Если вам нужно получить доступ к сообщению в вашем представлении, вы можете использовать @comment.post
.