Rails 好奇删除的时候的确认对话框肿么出来滴?

piginzoo · 2012年02月13日 · 最后由 fsword 回复于 2012年02月14日 · 3730 次阅读

<%= link_to '删除', @mymodel, confirm: '是否删除?', method: :delete %> 生成的 HTML 如下 Destroy

可是,为何我一点击就会触发弹出一个确认对话框呢?好生好奇啊,谁来解释一下。

jquery-rails 这个东东...

顺便补充一个问题: 点删除再点确定后,如果控制器处于认证过滤下,删除了当前登录用户的 session,有人遇到过这种情况吗?

#2 楼 @zhangjingqiang 估计是 csrf 的 token 没加上之类,如果是自己构造的 post 就很容易遇到这类问题

#3 楼 @fsword 果然是!规约真严格呀。

#5 楼 @zhangjingqiang 这个不是什么严格的规约,是为了防止 rails 被攻击,csrf 是一种很广泛的攻击方式,rails 的 link_to,form 中透明开启这个防攻击特性。 顺便说一句,rails 作为 framework 提供了很多安全方面的辅助,但是 rails 的简单也导致使用者对相关知识的缺失,我强烈建议 rails 开发人员认真读一下 rails.js 这个文件(有 for prototype 和 for jquery 的,对比阅读更有收获),更进一步,如果有时间,了解一下 web 领域的常见安全知识也很有意义。 ruby 的文化特点应该是减少重复,但不是让自己成为小白,相反,个人认为用 ruby 的人应该有勇气成为精英

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