可以在提交表单之前添加一些参数吗?
我的问题是我需要将票证 ID 发送到我的支付控制器。
一种可能性是通过隐藏的输入字段发送它,但是还有其他安全的方法可以实现这一点吗?
任何帮助将不胜感激。
谢谢。
购票过程 0) 选择活动 1) 用户选择他想购买的票种。2)用户添加他的个人信息 3)最后结帐(支付控制器)
可以在提交表单之前添加一些参数吗?
我的问题是我需要将票证 ID 发送到我的支付控制器。
一种可能性是通过隐藏的输入字段发送它,但是还有其他安全的方法可以实现这一点吗?
任何帮助将不胜感激。
谢谢。
购票过程 0) 选择活动 1) 用户选择他想购买的票种。2)用户添加他的个人信息 3)最后结帐(支付控制器)
因此,您正在生成您需要在以下表单中提交的票证 ID。是的,最好将其保存在形式中的隐藏变量中。
但除此之外,您可以将生成的票证 ID 存储在会话中,并在使用后销毁。
如果此票证 ID 对于特定会话一次是唯一的,那么您可以使用会话 ID 的键将其存储在数据库中,并且可以在提交表单时检索和清除 ID。
如果可能,则在提交表单时生成票证 ID。通过这种方式,无需将票证 ID 存储在隐藏变量或会话或数据库中。
实际上可能还有很多其他方法,但对于完整和具体的建议,请分享更多您的场景。
更新:
根据您的更新,我认为您需要维护一张running_transactions
表格。
它将有
event_id
(指向选定的事件)ticket_type_id
(指向用户想要购买的票种)ticket_id
(由您的算法生成的唯一 ID)person_details
(指向用户提供的详细信息)id
:此表的唯一标识符。现在开始购买过程
running_transaction
几乎为空的条目。running_transaction
因此,对于每个后续请求,您都会通过此 ID找到相应的条目。running_transaction
为completed
。可能您已经有一些东西可以跟踪这些信息,因此您也可以在该表中适应上述方式。也许你会找到比我提供的更好的名字:)
我已经在我拥有的应用程序中完成了此操作。
<td><%= @competencys[index].name %></td>
<%= f.hidden_field :student_id %>
<td>
<%= f.radio_button :score, '4' %>
<%= f.hidden_field :rating_id, :value => @competencys[index].ratings[0].id %>
<%= @competencys[index].ratings[0].description %>
</td>
这可能有点难以理解,但在这种情况下,我正在创建一个结果,它有一个 student_id 字段和一个 rating_id 字段。在 student_id 的情况下,这个字段已经与 :student_id 符号(来自控制器)相关联,所以我只是用 f.hidden_field 将它分配到“幕后”
在 rating_id 的情况下,我无法在控制器中分配它,需要“即时”进行,因此代码......
<%= f.hidden_field :rating_id, :value => @competencys[index].ratings[1].id %>
所以在这里你可以看到我正在使用这个 :value 符号来直接在视图中分配 rating_id。不确定这是否有帮助,但我想我会分享。祝你好运!