【发布时间】:2021-01-31 05:20:11
【问题描述】:
我创建了一个类似于Active::Record 示例的表结构,用于连接表。 books 表有如下嵌套关系:
(book: {reviews: { customer: :orders}})
我正在通过发布请求从表单提交所需信息。如果电子邮件地址已存在,则在另一个客户记录中,将在响应中发送电子邮件错误。但是,在没有客户的情况下,仍会创建所有其他记录(书籍、评论和订单)。发生电子邮件错误时,如何停止创建所有记录?我的控制器使用新方法创建每条记录,然后在保存之前进行验证,见下文。
person_controller.rb:
@book = Book.new title: "new book", year_published: 2021
authorize @book
@book.save
@customer = Customer.new name: attribute_params["name"], email: attribute_params["email"]
authorize @customer
@customer.save
@review = Review.new title: "terrible title", customer: @customer, book: @book
authorize @review
@review.save
@order = Order.new date_submitted: Time.now, customer: @customer
authorize @order
@order.save
【问题讨论】:
标签: ruby-on-rails join nested table-relationships