我试图有一种方法来确认输入的信息,然后将其实际保存到数据库

考虑制作个人确认页面,如下所述

Ruby on Rails:ActivereCord对象创建的确认页面

但是,我的表格包括使用PaperClip附加的文件,这使得更麻烦地实现了。

我想到只有一个:确认=>弹出,这将显示用户刚输入的信息。

问题是如何显示用户刚输入的信息,例如

<% form_for @entry, :html => { :multipart => true } do |f| %>
  <%= f.error_messages %>


    <%= f.label :name %><br />
    <%= f.text_field :name %>

    <%= f.label :file %><br />
    <%= f.file_field :file %>

    <%= f.submit 'Create', :confirm => "????? " %>

<% end %>
有帮助吗?

解决方案

鉴于您的加载附件,呈现登台视图可能不是一个坏主意,包括从附件中得出的信息允许用户确认。如显示文件,如果是图像,则是文本文件(如果是文本文件)的第一段,等等。

这将需要比仅添加确认弹出的更多工作,但是我认为增强的用户体验值得付出额外的努力。

我不熟悉回形针的工作方式。因此,您主要是独自详细的。

在上传文件的示例可以渲染登台视图之前,您可能必须创建记录。为此,我将在所讨论的模型上设置一个“活动”列,默认为false。

用法看起来像这样:

  1. 用户完成新表格。
  2. 附件已更新并保存记录,而活动字段设置为false。
  3. 重定向到确认页面,该页面本质上是带有确认链接/按钮和取消链接/按钮的显示页面
  4. 一个。单击确认链接/按钮时,它将向控制器发送请求,该控制器触发此记录设置上的更新操作到True。

    b。单击“取消链接/按钮”时,它将向控制器发送请求,从而触发该记录上的销毁操作。

剩下的就是设置一个重复的任务,以删除不活动的对象,并且在足够长的时间内被板条填充,以至于可以安全地假设用户刚刚结束了浏览器会话。

其他提示

铁轨提交方法的确认选项只能采用文本值。

如果要动态生成确认文本,您可以做的一种方法是编写自己的HTML提交标签,并编写自定义JavaScript以分析要在生成的文本中使用的字段。

或者,您可以使用Rails提交方法,但请使用JQuery之类的内容来添加事件处理程序。

我只是扔我的 js进入一个单击的处理程序. 。这就是轨道所做的。

<%= f.submit 'Create', :onclick => "confirm('Name is ' + $F('entry_name'));" %>

(请注意,没有测试,但看起来很近。确认是核心JS功能,而不是任何LIB的一部分)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top