2014-01-15 2 views
1

Change form input attribute 'name' to 'data-encrypted-name' обсуждает Django, но этот вопрос касается Rails.Изменить атрибут ввода формы 'name' на 'data-encrypted-name' в форме Rails

Я создал форму в Rails для обработки платежей по кредитной карте с помощью Braintree. Однако шифрование не работает, поскольку Rails добавляет атрибуты имени в формы. В соответствии с Braintree Docs, я хочу заменить атрибуты имени на атрибуты data-encrypted-name. Как мне это сделать?

Это (вложенная) Форма помощник:

<%= cc.text_field :number %> 

..creates следующий элемент:

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

Как заменить name с data-encrypted-name?

+0

Все, что начинается с 'data-', является расширением для программиста. Вероятно, у вас есть приложение Django, которое использует JavaScript для шифрования номера кредитной карты и заменяет имя и значение их зашифрованными версиями перед их отправкой. Раньше я делал кредитные карты, и вам это не нужно. Если вы используете HTTPS, и если ваш пользователь внимательно следит за своим браузером и компьютером, ваши номера безопасны. О, также, библиотеки и пример кода Braintree являются лучшими в бизнесе ... – Phlip

+0

@Phlip, документы Braintree говорят, что использовать 'data-encrypted-name', я просто пытаюсь сделать это в Rails-формах. https://www.braintreepayments.com/docs/ruby/guide/getting_paid#payment_form –

+0

Как выглядит модель? –

ответ

3

Попробуйте 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 %> 
0

На самом деле ответ работ Philp в. В соответствии с документами Braintree, следующие в режиме разработки выполняются следующим образом:

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