Отображение строки с форматом в ActiveRecord

57
7

У меня есть поле номера кредитной карты на столе. Для <% = f.text_field: credit_number%>, я хочу показать его с некоторым форматом, например, "xxxx xxxx xxxx xxxx" вместо "xxxxxxxxxxxxxxxx". Но я не хочу сохранять пространство с номером в БД.

Пока что мне не нужно вводить, а показывать только.

Какой лучший способ это сделать?

Благодарю.

Сэм

спросил(а) 2014-07-22T09:46:00+04:00 5 лет, 4 месяца назад
1
Решение
44

text_field не подходит для использования номера кредитной карты. <input type="number"> вместо этого. Попробуйте создать помощник, чтобы сделать визуализацию следующим образом:

=> "xxxxxxxxxxxxxxxx".chars.each_slice(4).map(&:join)*' '
=> "xxxx xxxx xxxx xxxx"

на виду использовать заполнитель:

<%= f.text_field :credit_number, placeholder: "xxxx xxxx xxxx xxxx" %>

Из комментария:

добавьте блок before_create к модели в models/user.rb:

before_create do
credit_number.split(' ').join if credit_number
end

Теперь, прежде чем создавать (пишите в db), credit_number строка credit_number.

ответил(а) 2014-07-22T09:54:00+04:00 5 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема