加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 基本Rails问题:在多个页面上构建数据

发布时间:2020-12-17 01:23:35 所属栏目:百科 来源:网络整理
导读:所有Rails专家网站都说不会在会话中存储ActiveRecords.但是,我有一个跨多个页面的多字段ActiveRecord对象.我正在尝试清理使用隐藏字段向前传递数据的代码,这似乎是一个坏主意(用户可以篡改一件事).将模型填充页面分成几个页面的典型或好的方法是什么? 注意
所有Rails专家网站都说不会在会话中存储ActiveRecords.但是,我有一个跨多个页面的多字段ActiveRecord对象.我正在尝试清理使用隐藏字段向前传递数据的代码,这似乎是一个坏主意(用户可以篡改一件事).将模型填充页面分成几个页面的典型或好的方法是什么?

注意:我可以将ActiveRecord保存到数据库中,然后使用我在会话中存储的ID获取它…问题是ActiveRecord有多个验证,如果没有所有数据,它将不会保存.我可以将params自己存储在会话中,或者某种东西……必须有一种标准的方法来做到这一点……

解决方法

我们使用以下似乎运作良好的模式.

>将名为wizard_stage的属性访问器添加到模型中:

attr_accessor:wizard_stage
>将隐藏字段:wizard_stage添加到每个页面中记录的表单.将字段的值设置为反映页面内容的值,例如:

f.hidden_??field:wizard_stage,:value => ‘联系方式’
>在模型验证中,添加如下条件:

验证…:if =>拉姆达{| M | m.wizard_stage ==’contact_details’}

现在可以为每次提交保存记录,逐渐填写更多属性.

请注意,这允许攻击者在需要时绕过验证,但在我们的情况下(大多数情况下?)并不重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读