如何彻底定制Rails Administrate gem



首先,如果这个问题已经在其他地方得到了回答,我很抱歉,但我找不到任何与此相关的帖子。如果答案已经存在,请将我重定向到该答案。

现在,我对Ruby/Rails web开发还很陌生,我试图做的通常是在React/Vue等JS框架中直接进行。
我想做的是扩展现有的产品项的Administrate表/集合视图,使其能够具有表示产品组的可扩展行。

数据更改如下:

From: [Product, Product, Product]
To: 
[{group=> ProductGroup, products=>[Product, Product]}, 
{group=> ProductGroup, products=>[Product, Product]}, 
Product, 
Product]

当前管理员集合视图适用于同一型号的项目列表。然而,我甚至不知道如何引入各种类型的项目列表({ProductGroup,Product}哈希项目以及Product项目(。

所以我的第一个问题从这里开始;我如何自定义表的属性以允许这样做,因为目前它会出错,因为在{ProductGroup,Product}哈希项中没有定义Product项中预期的某些属性。

第二个问题是,我如何开始构建一行的扩展功能,但这可能超出了范围,答案将被授予额外的"你非常了解"分数。

事实证明,这个特定问题的答案在于如何为可扩展项构建数据的不同方法。

最后,我在Product模型中添加了一个名为::product_variantsattr_accessor,然后在代码中实例化一个新的Product,它包含产品组名称,除了product_variants之外没有其他属性。

伪代码如下:

group = SomeProductGroup
decorated_group = Product.new(name: group.name)
decorated_group.product_variants = group.products

然后它会给你这个数据结构(而不是OP中的初始数据结构(:

[Product (with product_variants), Product, Product]

通过这样做,我在Administrate面板中仍然拥有所有相同的属性,方法是在产品中"鸭子式键入"ProductGroup

相关内容

  • 没有找到相关文章

最新更新