Tag: 质量分配

为什么切割params散列会对质量分配造成安全问题?

通过批量分配来防止安全风险的官方方法是使用attr_accessible 。 但是,一些程序员认为这不是模型的工作(或者至少不仅仅是模型的工作)。 在控制器中执行此操作的最简单方法是切割params哈希: @user = User.update_attributes(params[:user].slice(:name)) 但是文档说明: 请注意,使用Hash#except或Hash#slice代替attr_accessible来清理属性将无法提供足够的保护。 这是为什么? 为什么白名单切片的params不能提供足够的保护? 更新: Rails 4.0将发布强参数 ,一个精细的参数切片,所以我猜整个切片的事情毕竟不是那么糟糕。

ruby并行分配,步问题

所以,我正在尝试通过做一些项目的euler问题来学习ruby,而且我遇到了一些我无法解释的事情和逗号?运算符? 在两者的中间。 我还没有找到这方面的好文档,也许我只是不按照我应该使用谷歌,但好的ruby文档似乎有点稀疏。 。 。 1:您如何描述这是如何工作的? 第一个片段是我不明白的ruby代码,第二个是我编写的代码,只有在精心追踪第一个代码后才会执行相同的操作: #what is this doing? cur, nxt = nxt, cur + nxt #this, apparently, but how to describe the above? nxt = cur + nxt cur = nxt – cur 2:在下面的例子中,你如何描述’step’行正在做什么? 从我可以收集的内容来看,step命令的工作方式类似于(range).step(step_size),但这似乎在做(starting_point).step(ending_point,step_size)。 我对这个假设是对的吗? 我在哪里可以找到好的文件? #/usr/share/doc/ruby1.9.1-examples/examples/sieve.rb # sieve of Eratosthenes max = Integer(ARGV.shift || 100) sieve = [] for i […]

有没有办法绕过质量分配保护?

我有一个Rails 3应用程序,JSON对对象进行编码,以便将它们存储在Redis键/值存储中。 当我检索对象时,我正在尝试解码JSON并从数据中实例化它们,如下所示: def decode(json) self.new(ActiveSupport::JSON.decode(json)[“#{self.name.downcase}”]) end 问题是,这样做涉及质量分配,这是不允许attr_writer能力的属性被禁止的(我有充分理由告诉我!)。 有没有办法可以绕过仅用于此操作的质量分配保护?