1

我努力表现得很好,并确保我所有的模型都设置为防止大规模分配。我的用户类有一个受保护的管理标志。

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

作为典型(我认为?)我将我的控制器设置为update_attributes用作条件来确定更新是否有效以及要显示哪个闪存消息:

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

那么我什么时候设置管理员标志呢? update_attributes不占用块(至少在 Rails 2 中不是)所以我不能在那里设置它。

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

您是否应该在调用之前设置它update_attributes并保存条件的部分?

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

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

尽管我不喜欢DHH摆脱批量分配保护并使用 slice 的想法,但它似乎为我解决了这个问题。

还是我做错了?

4

0 回答 0