如何在Rails 2中设置受保护的变量

时间:2012-08-15 21:36:48

标签: ruby-on-rails security

我努力保持良好状态并确保我的所有模型都设置好以防止大规模分配。我的User类有一个受保护的admin标志。

那么设置它的最佳方法是什么?我见过的所有博客和RailsCasts都谈到了大规模任务的恐怖,似乎掩盖了这一部分。

通常情况下(我认为?)我将控制器设置为使用update_attributes作为条件来确定更新是否有效以及要显示的Flash消息:

if @user.update_attributes(params[:user])

那么我什么时候设置admin标志? update_attributes没有阻止(至少在Rails 2中没有)所以我无法在那里设置它。

我正在考虑将其设置并保存在update_attributes条件的成功块中。对于简单的管理布尔值,这一切都很好。那些需要实际验证的东西呢?那么你是否需要另一个if / else块来处理保存失败?

您是否应该在致电update_attributes并设置条件的保存部分之前进行设置?

if @user.save && @user.update_attributes(params[:user])

因为这对我来说有点味道。

尽管我不喜欢DHH's idea摆脱质量分配保护并使用切片,但它似乎可以解决这个问题。

或者我这样做错了吗?

0 个答案:

没有答案