ruby-on-rails - 更新回滚而不显示任何错误
问题描述
在我的应用程序中,我试图将 Stripe 计划与用户相关联。我已经为它实现了所有需要的配置和服务。
但是当我尝试运行一个方法时,我的事务刚刚回滚,并且我的服务器控制台上没有任何内容让我了解正在发生的事情。
这是我的课程:
private def create_client_subscription
puts '****** CreateSubscriptionService:: START METHOD create_client_subscription'
puts "****** CreateSubscriptionService:: #{token}"
client.create_subscription!(
customer: payment_gateway_customer,
plan: payment_gateway_plan,
token: 'test')
puts '****** CreateSubscriptionService:: END METHOD create_client_subscription'
end
我的客户:
def create_subscription!(customer: , plan: , source: )
puts '****** STRIPE_CLIENT:: START CREATE SUBSCRIPTION'
handle_client_error do
customer.subscriptions.create(
source: source,
plan: plan.id
)
puts '****** STRIPE_CLIENT:: END CREATE SUBSCRIPTION'
end
end
这里最奇怪的是,我可以在服务器上看到这行:
****** CreateSubscriptionService:: START RUN create_client_subscription
****** CreateSubscriptionService:: START METHOD create_client_subscription
****** CreateSubscriptionService::
Talent Load (12.2ms) SELECT "talents".* FROM "talents" WHERE "talents"."user_id" = $1 LIMIT $2 [["user_id", 1], ["LIMIT", 1]]
Client Load (0.6ms) SELECT "clients".* FROM "clients" WHERE "clients"."user_id" = $1 LIMIT $2 [["user_id", 1], ["LIMIT", 1]]
Agency Load (0.6ms) SELECT "agencies".* FROM "agencies" WHERE "agencies"."user_id" = $1 LIMIT $2 [["user_id", 1], ["LIMIT", 1]]
SQL (26.8ms) UPDATE "users" SET "payment_gateway_customer_identifier" = $1, "updated_at" = $2 WHERE "users"."id" = $3 [["payment_gateway_customer_identifier", "cus_DjNjsFkXZYKMz4"], ["updated_at", "2018-10-05 15:11:23.841589"], ["id", 1]]
(9.5ms) ROLLBACK
所以,我的“create_subscriptions”方法从未被调用过。它甚至没有在我的控制台上打印这一行。
关于正在发生的事情或如何在控制台上查看错误的任何想法?
解决方案
根据文档,如果您想RecordInvalid
在创建对象时引发错误,您应该使用create!
而不是create
.
create!(attributes = nil, &block) 公开
如果验证通过,则创建一个对象(或多个对象)并将其保存到数据库中。如果验证失败,则引发 RecordInvalid 错误,这与 Base#create 不同。
参考:https ://apidock.com/rails/ActiveRecord/Persistence/ClassMethods/create !
推荐阅读
- autodesk-forge - 对伪造查看器不起作用的材料着色
- php - 带有 Slim Framework(v4) 的正文请求返回 null
- reactjs - React 实用教程中的比较作业
- php - PHPUnit 5.7.23 中为 foreach() 提供的参数无效
- javascript - 如何从具有组的用户列表中创建具有地址字符串的组?
- ios - 设置单元格的更好方法
- javascript - PHP 驱动的选择函数
- python - 使用 Tensorflow 提高 Iris ML 模型的准确性
- scala - Spark中序列化的概述是什么
- pandas - 两个数据帧之间的百分比变化