我想正确地将条带费用与控制器中的create方法结合起来。使用创建方法集成条纹付款
def create
@individual_training = IndividualTraining.new(individual_training_params)
Stripe.api_key = ENV['STRIPE_SECRET_KEY']
token = params[:stripeToken]
begin
charge = Stripe::Charge.create(
amount: (@individual_training.training_cost.cost * 100).floor,
currency: 'pln',
card: token
)
rescue Stripe::CardError => e
flash[:danger] = e.message
render :new
end
if @individual_training.save
redirect_to :back, notice: 'Pomyślnie dodano.'
else
render :new
end
end
问题是正确验证整个表单。除了条纹领域,我也有专为@individual_training设计的领域。当Stripe没有任何错误,但@individual_training具有条带化注册付款时。我想在@ individual_training.save为真时反过来记录条纹费用。
如果数据在第一部分(条带字段)和表单的第二部分(@individual_training字段)中正确,那么应该注册一个付款并且@ individual_training.save。
我希望能够清楚地解释这个问题。
你需要像Active Record这样的东西有效吗? [方法](http://api.rubyonrails.org/classes/ActiveRecord/Validations.html#method-i-valid-3F) –
@PavelBulanov你的意思是,使用这个:if charge.valid? && individual_training.save –
@PavelBulanov当我使用charge.valid?有错误:未定义的方法为#<条带::电荷:0x007fe8ea4751c8 >>。 –