我想在很多方面我仍然是一个新手,对这些 Rails 的一些东西。我有用于付款的 ActiveRecord 模型。但是,它只有两件事被添加到它的表中,一旦我们从 authorize.net 得到积极的回应,这些事情就会完成。在这个模型的控制器中,我有我的购物车表单。在购物车表单中,我有从@client 和信用卡信息中提取的默认值的账单信息。它看起来有点像这样:
<%= form_for @payment, :url => { action: "checkout" } do |f| %>
...show errors ...
<%= f.fields_for @client do |ff| %>
<%= ff.label :firstname, 'First Name*' %>
<%= ff.text_field :firstname %>
...more fields ....
<%= ff.label :zip, 'Zip*' %>
<%= ff.text_field :zip %>
<% end %>
<%= f.label :cardnumber, 'Card Number*' %>
<%= f.text_field :cardnumber %>
... more cc info fields ...
<% end %>
现在在模型中,我添加了 attr_accessor :cardnumber 和其他卡信息字段。
对于这些,我没有任何 getter 或 setter 方法(也许这就是我所缺少的)。
但是,我在付款模型中确实有这个:
validates :zip, presence: true, numericality: true
validates :cardnumber, presence: true, numericality: true
然而,到目前为止,表单将一起绕过此验证并前往结帐。任何帮助将不胜感激!如何让这些验证正常工作?