0

嗨,我有一个 NOOB 问题,鉴于 GITHUB 发生的事情,由于 Rails 中的安全漏洞,他们的应用程序被利用。

在 Rails 中保护对象属性但仍允许在适用的情况下为其赋值的最佳方法是什么?

谢谢

4

1 回答 1

2

实际上,Rails 3.1 添加了新的内置方法来处理带有角色的批量分配,这可能是您想要查看的内容。

发布说明在这里

基本上它是这样工作的:

class User < ActiveRecord::Base
  attr_accessible :name
  attr_accessible :name, :role, :as => :admin
end

这使您能够做的是,您可以使用以下方式允许用户在您的一个控制器中更新他自己的信息:

@user.update_attributes(params[:user])

而且这种用法永远不会更新:roleUser 模型中的属性。但是,当您让管理员用户在单独的控制器中管理角色时,您可以使用以下语法:

@user.update_attributes(params[:user], :as => :admin)

这也将允许:role更新属性

于 2012-03-07T04:36:56.027 回答