gpt4 book ai didi

ruby-on-rails - rails/ ruby : Get Last 4 Digits of Credit Card

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:08 25 4
gpt4 key购买 nike

我知道我见过一些类似的问题,但没有一个解决方案对我有用。

我正在向我的信用卡 Controller 发送一个 16 位数字,但我只想要最后四位。我一直在尝试 [-4..-1] 到 [14-16] 到 last(4) 的每个版本,但我仍然遇到同样的错误:数字太多。这是我现在拥有的代码行(:last_4 以 16 位数字发送到 Controller ):

credit_card_params[:last_4 => credit_card_params[:last_4].last(4)]

该字段是一个整型字段。这是一个示例输入:

1234567890987654

这应该产生这个:

7654

我做错了什么?

更新:

非常感谢您的所有回复。它 u= 原来这实际上是一个字符串。无论如何,我一直在为此烦恼。还是不行!这是我的代码,我的 Controller 仍在提示字符太多:

ccNum=credit_card_params[:last_4]
ccNum = ccNum[-4..-1]
credit_card_params[:last_4 => ccNum]
@credit_card = CreditCard.new(credit_card_params)
respond_to do |format|
if @credit_card.save #HERE IS THE ERROR!

这是表单中的代码:

<%= f.label :last_4, "Credit Card Number" %><br>
<%= f.number_field :last_4 %>

保留字符串 1234123412341235 不变,并显示以下错误消息:

1234123412341235 is out of range for ActiveRecord::Type::Integer with limit 4

如果有人能解决这个问题,我将不胜感激。

最佳答案

考虑一下:

cc = 1111222233334444 # 16 digits in int
cc = cc.to_s # as a string now
cc = cc[-4..-1] # as a string "4444"
cc = cc.to_i #now as a int 4444

或者只写一行

cc = cc.to_s[-4..-1].to_i

关于ruby-on-rails - rails/ ruby : Get Last 4 Digits of Credit Card,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34059814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com