【发布时间】:2015-12-03 07:09:43
【问题描述】:
我知道我见过一些类似的问题,但没有一个解决方案对我有用。
我正在向我的信用卡控制器发送一个 16 位数字,但我只需要最后四个。我一直在尝试 [-4..-1] 到 [14-16] 到 last(4) 的每个版本,但我仍然遇到同样的错误:数字太多。这是我现在拥有的代码行(:last_4 以 16 位发送到控制器):
credit_card_params[:last_4 => credit_card_params[:last_4].last(4)]
该字段是一个整数字段。这是一个示例输入:
1234567890987654
这应该会产生:
7654
我做错了什么?
更新:
我非常感谢您的所有回复。 u=原来这实际上是一个字符串。无论如何,我一直在为此烦恼。还是不行!这是我的代码,我的控制器仍在抱怨字符太多:
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 超出 ActiveRecord::Type::Integer 的范围,限制为 4
如果有人能解决这个问题,我将不胜感激。
【问题讨论】:
-
请显示更多代码,例如从哪里发送或从哪里接收?
-
credit_card_params,是数字还是字符串?
-
提供样本输入、实际输出和预期输出。
-
你使用我的解决方案了吗?
标签: ruby-on-rails ruby