在Rails的嵌套表单中, 如果在model的accepts_nested_attributes_for后加入了:allow_destroy => true ,就可一通过在表单中提交一个_destroy,来控制是否删除嵌套属性。(嵌套表单)
问题出现在这样一个场景:
1、用户在编辑一个相册,删除了一些照片(并没有真正的删除,只是把_destroy隐藏域设置为true,并且隐藏了这些照片。如果此时提交,那么这些照片将被真正删除),但是,没有保存,而是点击了取消。
2、然后他点击浏览器“后退”按钮,又返回到编辑页面,浏览器缓存会让页面看起来和用户取消编辑前一样。有些照片被隐藏了。
3、刷新页面,那些被隐藏的照片又回来了。用户修改了一下相册的描述。保存。
4、然后发现,在步骤1中删除的那些照片被删掉了。
原来,这是浏览器的自动填充功能(autocomplete)搞得鬼。在步骤1的时候浏览器记住了每个_destroy的值,又在步骤3中帮你填好了。
解决办法:
<%= f.hidden_field :_destroy, :autocomplete => 'off' %>
autocomplete这个属性,之前并不是HTML标准,只是浏览器都支持。直到HTML5才成为标准。它对所有的表单域都有效。
分享到:
相关推荐
介绍插件,用于对记录进行排序(使用 gem)安装要启用rails_admin_acts_as_list,请将以下内容添加到您的Gemfile : gem 'rails_admin_acts_as_list'gem 'rails_admin' 重要提示: rails_admin_acts_as_list之前必须...
rails_best_practices rails_best_practices是用于检查Rails代码质量的代码度量工具。 它支持以下ORM / ODM: 活动记录 蒙古型 mongomapper 以及以下模板引擎: erb 哈姆 减肥 拉布尔 rails_best_practices...
允许您使用为Rails应用程序的前端供电。 是将前端工具像Ruby一样进行编程,纯属喜悦! :smiling_face_with_heart-eyes: 或在运行的检查。 产品特点 :high_voltage: :light_bulb: 即时服务器启动 :high_voltage: ...
:fire: 设计精美的管理面板(Nodejs、Laravel、Java Spring、Ruby On Rails、Django、Asp.net Core ...) :motor_scooter: :motor_scooter: :motor_scooter: :vertical_traffic_light: Vespa 不是 CMS 或博客平台,...
持续移动且不破坏事物 :factory: :building_construction: :construction: :construction_worker: 正在建设中-请稍后再回来!
:dog_face: MiAudota :cat_face: 该应用程序显示可从用户最近的庇护所获取的动物,并允许将其应用到收养过程中,从而完成一份调查表,... Ruby on Rails API; PostgreSQL; Heroku。执照版权所有:copyright:2019, 。
rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器 Rails 语义记录器 语义记录器用语义记录器替代 Rails 缺省记录器。http://github.com/rocketjob/rails_semantic_logger文档有关完整文档...
"inspinia admin - v2.5 Rails_Full_Version" 是一个基于Rails框架构建的后台管理系统的完整版本。这个系统采用流行的Inspinia Admin模板,提供了丰富的功能和自定义选项,旨在帮助开发者快速构建高效、现代且用户...
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
默认引导程序3 rails_admin主题的现代替代。 它提供新闻颜色,调整和全新的树状视图菜单。 您可以将其派生并根据需要更改variables.scss ! 宝石文件 gem 'rails_admin_rollincode' , '~> 1.0' gem 'rails_admin'...
Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...
Rails-Mini-Social-Network用Rails创建的迷你社交网络! 不再维护。 其他版本React版本Vue版本Golang版本快速链接屏幕截图用法Scree Rails-Mini-Social-Network一个由Rails创建的迷你社交网络! 不再维护。 另一个...
Rails的服务器定时响应头 带来Ruby on Rails服务器端性能指标 :chart_increasing: 通过server_timing gem访问Chrome的开发者工具(以及其他支持浏览器)。 生产安全:trade_mark:。 指标是从 gem收集的。 不需要帐户...
graphql-rails-generators 一些生成器可以轻松将Rails模型与集成。 我之所以创建它,是因为我浪费了太多的按键来手动复制模型架构以创建graphql类型。 该项目包含用于查看ActiveRecord模型架构的生成器,并为您...
Rails Admin枚举4 Rails Admin插件,用于正确查看Rails 4.1枚举 安装 gem 'rails_admin_enum4', github: 'sibext/rails_admin_enum4' bundle install 用法 通过生成器生成新模型: rails g model Sibext service:...
《Inspinia Admin - v2.5 Rails Seed Project:打造高效后台管理的全面解析》 在Web开发领域,后台管理界面的设计与实现是一项至关重要的任务,它直接影响到开发者的工作效率和用户体验。Inspinia Admin是一款广受...
自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) ...
Rails Admin 全球化自定义操作。 这段代码未经测试,需要很好地重写,但可以工作。 将其视为原型。 用法: 将 gem 添加到您的打包器中: gem "rails_admin" gem "globalize3" gem "rails_admin_globalize" 将...
《InspiniaAdmin 2.6.1 Rails Full Version 深度解析》 InspiniaAdmin 2.6.1 Rails Full Version 是一个专为Web应用开发设计的全面的后台管理框架,它基于Ruby on Rails框架,为开发者提供了一整套强大的功能,帮助...