问题标签 [mass-assignment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
584 浏览

ruby-on-rails-3 - 收到批量作业警告但不知道为什么

我对以下关于批量分配的警告感到非常困惑:

这是我的上传模型:

这是我的用户模型

模型中没有 :upload_id 。

在控制器更新操作中:

谁能告诉我为什么会收到此错误。该应用程序有效,但我想解决这个问题。

0 投票
1 回答
512 浏览

asp.net - 使用 RestSharp、POST 请求进行批量分配 - MVC3

我一直在做大量的研究,试图找到与我的 ASP.NET MVC3 应用程序交流批量分配 POST 请求的最佳方式,但没有取得多大成功。


场景如下:
就像我提到的,我有一个带有标准 REST 方法的 ASP.NET MVC3,我试图用它与桌面应用程序(另一个内部编写的应用程序)进行通信。作为一个原型,我们只是通过WebClient使用暴力 XML 文档上传,然后让 MVC3 应用程序解析 XML 文档。为了保持这种行为,我们必须不断地构建多种方法,一种用于 XML 文档解析,另一种用于网站上的标准模型使用。如果可以的话,我想远离它。


经过我所有的研究,我遇到了RestSharp,我想知道是否有办法使用 RestSharp 处理批量分配 POST 请求。我希望能够执行以下操作:

在 MVC3 应用程序中...

在桌面应用程序...

谁能给我任何关于如何实现这一目标的指示?

0 投票
2 回答
575 浏览

ruby-on-rails - Rails“批量分配” - 这到底是什么?

Rails 文档并没有说得很清楚,但似乎 update_attributes 的所有使用都构成批量分配,如果使用 attr_accessible,则所有属性都需要列入白名单。update_attributes 的文档没有提到这一点:

update_attributes(attributes)

使用传入的 Hash 中的所有属性更新此资源并请求保存记录。

如果由于连接或远程服务错误而导致保存失败,则会引发异常。如果由于资源无效而导致保存失败,则将返回 false。

注意:虽然此请求可以使用资源的部分属性集进行,但请求的完整主体仍将在保存请求中发送到远程服务。

是否有任何其他我应该注意的方法触发这种质量分配限制?

0 投票
5 回答
5823 浏览

ruby-on-rails - 为什么切片 params 散列会对批量分配造成安全问题?

通过批量分配防止安全风险的官方方法是使用attr_accessible。然而,一些程序员认为这不是模型的工作(或者至少不仅仅是模型)。在控制器中执行此操作的最简单方法是切片params哈希:

但是文档指出:

请注意,使用 Hash#except 或 Hash#slice 代替 attr_accessible 来清理属性不会提供足够的保护。

这是为什么?为什么白名单切片参数不能提供足够的保护?

更新: Rails 4.0 将发布 strong-parameters,一个精细的参数切片,所以我想整个切片的事情毕竟不是那么糟糕。

0 投票
1 回答
1136 浏览

ruby-on-rails - Rails 3.1 attr_accessible 验证接收角色数组

我想使用 rails 新的动态 attr_accessible 功能。但是,我的每个用户都有许多角色(我正在使用声明式授权)。所以我的模型中有以下内容:

我在我的控制器中传递了这个:

user_roles 是一个符号数组:

我希望我的模型检查数组中的一个符号是否与声明的 attr_accessible 匹配。因此,我避免任何重复。

例如,假设 user_roles =[:admin, :employee]。这有效:

但是如果我只能验证一个角色或符号,因为我的所有用户都有很多角色,那么它是没有用的。

任何帮助将不胜感激

** * ** * ** * ** * ***更新* ** * ** * ** * ** * ** * ** * ** * **

您可以在此处下载示例应用程序: https ://github.com/jalagrange/roles_test_app

此应用程序中有 2 个示例: y 无法更新任何属性的学生,尽管事实上 'user_roles = [:admin, :student]'; 而我只能更改名字的人,因为我在控制器更新操作中使用“user_roles.first”。希望这可以帮助。我确定其他人一定有这个问题。

0 投票
1 回答
3392 浏览

ruby-on-rails - Rails 3:使用 ActiveAdmin 和 has_one 进行批量分配

我正在开发一个 Rails 应用程序,其中有两个模型UserClient. User由设计支持并负责身份验证并has_one Client保存给定用户的客户端详细信息。这种关系始终存在,因为我确保Client在创建User.

对于我正在使用的管理区域ActiveAdmin。现在,当我尝试User通过管理界面创建一个时,我使用这样的表单:

问题是 要么 要么被保存User并且Client页面被重新加载并出现验证错误。我检查了 rails 控制台,WARNING: Can't mass-assign protected attributes: client_attributes每次尝试创建User.

我已经搜索了这个问题,发现为了允许批量分配,必须为允许分配attr_accessible的每个字段定义。因此,我已将此指令放入Client上述每个字段的模型中,并且消息不断出现,从而阻止模型正确保存。

有人对此有任何线索吗?

0 投票
2 回答
285 浏览

ruby-on-rails - Rails 中的 attr_accessible 的对立面是什么?

Rails 中的 attr_accessible 的对立面是什么?

我不想写每一个属性,我只想写我想要阻止的那些。

0 投票
1 回答
1553 浏览

ruby-on-rails - STI和mongoid中的嵌套属性质量分配?

关于使用 mongoid 通过嵌套属性进行批量分配的问题。

例子:

这将输出以下内容:

如果注释掉的行

在我得到以下评论:

请注意小时值是如何没有从默认值更新的。

问题,为什么在 attr_accessible 中的评论会破坏我文档的持久性。我也是 Rails 的新手,我并不完全理解 attr_accessible,但我知道我需要它来通过我的视图填写字段。如何使用注释的 attr_accessible 行让我的文档保持不变?

谢谢

0 投票
2 回答
884 浏览

ruby-on-rails - Mongoid:如何防止批量赋值创建未定义的字段?

这是代码:

请注意,age它没有被定义,但它被保存了。

这是有问题的(可能是 DoS 的来源),因为恶意用户可以在 POST 中添加任何参数,并且带有大字符串的未知字段可以潜入。(例如name=foo&bogus=#{'x'*1000000}

到目前为止,除了 之外,我什么也找不到attr_accessible,但这对 Mongoid 来说并不是很好,因为您必须在所有模型中field始终保持相同的字段名称。attr_accessible不干燥。

我认为attr_accessibleAPI 非常适合 ActiveRecord,因为有一个。您没有在模型(DRY)和b 中明确定义字段。保证不会将不存在的字段保存到 RDB。但是对于 Mongoid,我认为应该有比attr_accessible.

请注意,有一个全局配置设置allow_dynamic_fields,但它与批量分配无关,因此超出了本次讨论的范围,但我认为它实际上应该是每个模型的宏,并且还应该处理批量分配。

你是如何处理这个问题的?

0 投票
2 回答
3987 浏览

ruby-on-rails - 从 JSON 反序列化 ActiveRecord

我想使用 JSON 序列化将查询结果保存到 redis 中并查询回来。

将查询结果获取到 json 非常简单:

但是我没有找到将其反序列化回 ActiveRecord 的正确方法。最直接的方法:

给我一个错误:

所以 id 变空。我想只使用 OpenStruct 而不是 ActiveRecord 来查看视图,但我相信有更好的方法。