Rails 为什么 update_attribute 會略過 validation 資料驗證??参数也不支持占位

lin_style · 2012年09月17日 · 最后由 lin_style 回复于 2012年09月17日 · 2921 次阅读

update_attribute(attribute_name, value)

而且这个语法还不支持 update_attribute(["nick_name=?", user_setting.nick_name]) 这种占位符。。那一些文本的更新怎么办?怎么防止注入呢??还是我用法有问题

update_attribute 就是用来略过校验的,但是不会略过 callback。还有个可以略过 callback 的 update_column。

不支持占位符。

update_attribute :nick_name, user_setting.nick_name # 无校验
update_attributes :nick_name => user_setting.nick_name # 有校验

#1 楼 @Rei 那就是在 callback 里面自己做防止注入之类的了??但是占位符很好用啊,也很好的防止注入。。

#1 楼 @Rei 在比如一些密码重置,默认都是在校验里亚。。

没明白需求,1 楼的两种更新操作不能满足需求吗?update_attributes 是有校验的,注意单复数。

#1 楼 @Rei 晕,有个 s ..试了 下,有校验,多谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号