如何限制嵌套模型总数?

How to limit nested model total counts?

提问人:Patrick Su 提问时间:4/21/2023 更新时间:4/21/2023 访问量:39

问:

作为标题,我有具有嵌套关系的产品和订单模型,例如:

resources :products do
  resources :orders 
end

产品有一个备案,它的名称是“金额”,例如是 5。

如何限制订单总数小于或等于 5?

我不知道如何在订单模型中使用父关键字。谁能帮我?谢谢。

我需要一个解决方案,谢谢。

ruby-on-rails 嵌套 限制 父级

评论


答:

0赞 Abhishek Badmaliya 4/21/2023 #1

我们可以以这种方式行事。在这里,我将以一段代码的形式给您一个答案。 您可以测试下面的代码,我在其中创建了一个方法来处理此限制。

class Order < ApplicationRecord
  # association
  belongs_to :product
  # create callback
  before_create :check_order_limit

  private

  # created method which is called before creation
  def check_order_limit
    errors.add(:base, 'Oops, Limit Exceeded!') if product.orders.size >= product.amount
  end
end

评论

0赞 Patrick Su 4/24/2023
我尝试过,但没有用!github.com/afgnsu/limit