Ruby on rails Rails wrap_参数改变了行为,在一个控制器上工作而不在另一个控制器上工作

Ruby on rails Rails wrap_参数改变了行为,在一个控制器上工作而不在另一个控制器上工作,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有两个不同的控制器,都继承自ApplicationController,class-PagesController

我有两个不同的控制器,都继承自
ApplicationController
class-PagesController
class-CommentsController

页面#test上发布
将所有发布的参数复制到另一个散列属性:

# POST '/pages/test' :
{ "awd":"awd" }

# result :
{
   "awd": "awd",
   "action": "test_post",
   "controller": "pages",
   "page": {
       "awd": "awd"
   }
}

# POST '/comments' :
{"awd":"awd"}

# result :
{
    "awd": "awd",
    "action": "create",
    "controller": "comments",
    "comment": {}
}
注释路由由
资源创建:注释,仅:[:创建]
发布“/comments”=>“comments”#创建“
执行相同的操作

注意:No
在\u filter
或其中任何一个中的任何额外代码之前,所有请求都是json,
wrap\u参数。rb
具有
wrap\u参数格式:[:json]

编辑

这些控制器之间只有一个区别,
commentscoontroller
使用
rails g scaffold…
生成,而
PagesController
使用
rails g controller…

编辑2

CommentsController
self.\u wrapper\u options
中的
self.\u wrapper\u options
的值为

{
    "format": [
        "json"
    ],
    "include": [
        "_id",
        "created_at",
        "updated_at",
        "content",
    ],
    "name": "comment"
}
这就产生了问题,但是为什么当我没有设置include in wrap_参数时,rails添加了这个参数呢

在没有:include或:exclude选项集的ActiveRecord模型上,它 将仅包装类方法返回的参数 属性名称

我猜“awd”是页面模型上的一个属性,而不是评论模型上的属性。如果您真的想将该JSON发送到comments控制器,请尝试添加如下内容:

wrap\u参数:注释,包括:[:awd]