gpt4 book ai didi

ruby-on-rails - Rails 3参数不必要的包装

转载 作者:行者123 更新时间:2023-12-03 12:08:45 36 4
gpt4 key购买 nike

我将JSONt形式的JSONt_code之类的JSON发布到我的Rails 3 Controller ExampleController中。

而不是像这样的{:name => "hello"}:

{:name => "hello"}

我越来越:
{:name => "hello", :controller => "example", :action => "index", :example => {:name => "hello"}

(是,JSON数据出现了两次!并添加了 Action 和 Controller )

知道为什么吗?

最佳答案

ActionController为JSON请求自动执行此操作,因此您可以轻松地将参数传递到Example.create@example.update_attributes,这意味着客户端不需要为模型打包它们-它可以只包含name等。等在JSON数据的顶层, Controller 将处理分组。

@example = Example.create params[:example]

参数包装代码从 Controller 的名称获取模型的名称,但是您可以使用 Controller 中的 wrap_parameters宏对其进行更改:
wrap_parameters :thing

或者用
wrap_parameters false

在Rails 3.2中,如果您的模型使用 attr_accessible,则参数包装功能还将排除所有无法进行批量分配的参数。如果愿意,还可以使用宏使此包装功能应用于JSON以外的其他内容类型。

默认情况下,在新创建的Rails应用程序中,使用初始化程序为所有 Controller 进行配置。寻找 config/initializers/wrap_parameters.rb

关于ruby-on-rails - Rails 3参数不必要的包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9133652/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com