我想正確地將條帶費用與控制器中的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 >>。 –