gpt4 book ai didi

Spree:自定义产品的关键属性

转载 作者:行者123 更新时间:2023-12-04 14:18:38 28 4
gpt4 key购买 nike

有谁知道是否可以向产品的关键属性集(名称、描述、永久链接、元描述等)添加新属性?这个想法是我希望在创建产品时使用这些属性,而不是通过产品属性添加它们。

谢谢。

最佳答案

最简单的方法是通过迁移将属性直接添加到 Product 模型。可以通过使用装饰器来添加验证,装饰器是 Spree 中用于覆盖模型的首选模式。

# in app/models/product_decorator.rb
Product.class_eval do
validates :some_field, :presence => true
end

另一种选择是为扩展字段创建辅助模型。也许产品扩展
# in app/models/product_extension.rb
class ProductExtension < ActiveRecord::Base
belongs_to :product

validates :some_field, :presence => true
end

# in app/models/product_decorator.rb
Product.class_eval do
has_one :product_extension
accepts_nested_attributes_for :product_extension
delegate :some_field, :to => :product_extension
end

然后在您的产品创建表单中,您可以为这些字段提供 fields_for。我认为与此有关的一个警告是您需要在扩展可用之前创建产品模型。您可能可以通过产品 Controller 创建操作中的一些额外逻辑来解决此问题。

关于Spree:自定义产品的关键属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5876187/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com