不是很明白这东西。大概是了解的情况是就是要是我知道字段名的话,就可以通过浏览器进行以下操作。
http://www.xxx.com/posts/create/?tiile=foo&body=xxxsadasdasdasdasd
我在本机测试一个 sinatra 应用,通过这个方式还真可以把一个普通用户变成管理员,实在太可怕了。
attr_accessible ActiveRecord 里有个 whitelist 的设置,然后在每个 model 中 attr_accessible 你的 form 字段,这样只能提交你允许的了
attr_accessible
或者自己手动写个方法在控制器中检查参数也行。要不然就直接手动赋值 不用 mass
params.slice(:title, :body)
mass assignment 不是 active record 的 而是 active model 的 如果你的模型使用 am 的话 一样可以使用
原来写 cakephp 的时候 使用的就是@Rei 的方式 写一个 unset 敏感字段的函数
楼上正解,include ActiveModel::MassAssignmentSecurity
include ActiveModel::MassAssignmentSecurity