我一直在寻找这个问题,但似乎无法找到答案,尽管我认为如果你比我更熟悉 Rails,这应该是一个很容易解决的问题。我正在尝试将多个 default_scope 条件添加到我的 Product 模型中。我的产品模型文件如下:
class Product < ApplicationRecord
has_many :order_items
default_scope { where(active: true) }
validates :name, presence: true, length: { maximum: 300 }
PRICE_REGEXP = /\A\d{1,4}(\.\d{0,2})?\z/
validates :price, presence: true,
numericality: true,
format: { with: PRICE_REGEXP }
validates :description, presence: true, length: { maximum: 1000 },
allow_nil: true
end
我还想补充
default_scope -> { order(created_at: desc) }
使产品索引页面上的新产品采用最新优先的格式。每当我执行以下操作时都会收到语法错误消息:
default_scope -> { order(created_at: desc) }, { where(active: true) }
或者
default_scope -> { order(created_at: desc), where(active: true) }
或者
default_scope -> { order(created_at: desc) where(active: true) }
我知道这可能只是我不理解的语法。如果有人可以就如何解决这个问题给我建议,将不胜感激!谢谢!