【问题标题】:Change form input attribute 'name' to 'data-encrypted-name' in Rails forms在 Rails 表单中将表单输入属性“名称”更改为“数据加密名称”
【发布时间】:2014-02-04 12:28:28
【问题描述】:

Change form input attribute 'name' to 'data-encrypted-name' 讨论 Django,但这个问题是关于 Rails 的。

我在 Rails 中创建了一个表单来使用 Braintree 处理信用卡付款。但是,加密不起作用,因为 Rails 将名称属性添加到表单中。根据Braintree Docs,我想用data-encrypted-name 属性替换名称属性。我该怎么做呢?

这个(嵌套的)表单助手:

<%= cc.text_field :number %>

..创建以下元素:

 <input id="credit_card_number" name="credit_card[number]" size="30" type="text">

如何将name 替换为data-encrypted-name

【问题讨论】:

  • 任何以data- 开头的都是特定于程序员的扩展。你可能有一个 Django 应用程序,它使用 JavaScript 加密信用卡号,并在发送之前用加密版本替换名称和值。我以前做过信用卡,你不需要这个。如果您使用 HTTPS,并且如果您的用户小心使用他们的浏览器和计算机,那么您的号码是安全的。哦,另外,Braintree 的库和示例代码是业内最好的......
  • @Phlip,Braintree 文档说要使用data-encrypted-name,我只是想在 Rails 表单中这样做。 braintreepayments.com/docs/ruby/guide/getting_paid#payment_form
  • 模型是什么样的?
  • cc.text_field :number, 'data-encrypted-name' =&gt; 'something'
  • @JustusDannyEapen,技术上没有模型(用于信用卡交易),但我正在使用 Braintree-Rails-Gem 来假装有一个 github.com/lyang/braintree-rails

标签: html ruby-on-rails ruby-on-rails-3 forms braintree


【解决方案1】:

试试text_field_tag点赞

<%= text_field_tag 'credit_card[data-encrypted-name]', size: 30 %>

你也可以赋值,例如

<%= text_field_tag 'credit_card[data-encrypted-name]', cc.number, size: 30 %>

【讨论】:

    【解决方案2】:

    实际上,Philp 的回答很有效。鉴于 Braintree 的文档,以下在开发模式下按预期运行:

    c.text_field  :number, 'data-encrypted-name' => "number"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多