加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:36:42 所属栏目:百科 来源:网络整理
导读:我发布了一些像JSON的{:name = “hello”}到我的Rails 3控制器ExampleController. 而不是获得参数: {:name = "hello"} 我越来越: {:name = "hello",:controller = "example",:action = "index",:example = {:name = "hello"} (是的,JSON数据出现两次!并
我发布了一些像JSON的{:name => “hello”}到我的Rails 3控制器ExampleController.

而不是获得参数:

{:name => "hello"}

我越来越:

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

(是的,JSON数据出现两次!并添加动作和控制器)

任何想法为什么?

解决方法

ActionController自动为JSON请求执行此操作,以便您可以轻松地将参数传递到Example.create或@ example.update_attributes中,这意味着客户端不需要将其打包到您的模型中 – 它可以包括name等.人.在您的JSON数据的顶层,控制器将处理分组.
@example = Example.create params[:example]

参数包装代码从控制器的名称获取模型的名称,但您可以使用控制器中的wrap_parameters宏更改它:

wrap_parameters :thing

或者把它关掉

wrap_parameters false

在Rails 3.2中,如果您的模型使用attr_accessible,则参数包装功能也将排除任何不能进行质量分配的参数.您也可以使用宏使此包装功能适用于除JSON之外的其他内容类型,如果您愿意的话.

默认情况下,在新创建的Rails应用程序中,这是为使用初始化程序的所有控制器配置的.查找config / initializers / wrap_parameters.rb.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读