如何使用非外键字段 link 活动管理员上的实体
How to link entities on active admin using non foreign key fields
我想创建一个 link 来引用另一个模型,但我没有可用的主键字段。
我想使用 store_id_product 在 OrderProduct 中创建一个 link,但活动管理员只使用 id_product:
ActiveAdmin.register Product
index do |customer|
column :id_product, :sortable => false (foreign key)
column :description, :sortable => false
column :url, :sortable => false
column :store_id_product, :sortable => false (not a foreign key)
end
end
ActiveAdmin.register OrderProduct
index do |customer|
column :id_order, :sortable => false (foreign key)
column :date_order, :sortable => false
column :id_customer, :sortable => false
column :store_id_product, :sortable => false
end
end
有什么方法可以做到这一点??
谢谢!!
您可以通过将块传递给 column
方法来自定义 table 单元格。
ActiveAdmin.register OrderProduct do
index do |customer|
...
column :store_id_product, :sortable => false do |order_product|
link_to 'Product', product_path(order_product.store_id_product)
end
end
end
如果 store_id_product
没有指向 products
table 中的主键,那么你必须为 ProductController
提供一种方法(由 ActiveAdmin.resource Product do ... end
) 通过该字段检索产品。您可以创建一个 new custom action or customize the product's retrieval。第二种情况意味着您总是希望通过 store_id_product
.
检索产品
我想创建一个 link 来引用另一个模型,但我没有可用的主键字段。
我想使用 store_id_product 在 OrderProduct 中创建一个 link,但活动管理员只使用 id_product:
ActiveAdmin.register Product
index do |customer|
column :id_product, :sortable => false (foreign key)
column :description, :sortable => false
column :url, :sortable => false
column :store_id_product, :sortable => false (not a foreign key)
end
end
ActiveAdmin.register OrderProduct
index do |customer|
column :id_order, :sortable => false (foreign key)
column :date_order, :sortable => false
column :id_customer, :sortable => false
column :store_id_product, :sortable => false
end
end
有什么方法可以做到这一点??
谢谢!!
您可以通过将块传递给 column
方法来自定义 table 单元格。
ActiveAdmin.register OrderProduct do
index do |customer|
...
column :store_id_product, :sortable => false do |order_product|
link_to 'Product', product_path(order_product.store_id_product)
end
end
end
如果 store_id_product
没有指向 products
table 中的主键,那么你必须为 ProductController
提供一种方法(由 ActiveAdmin.resource Product do ... end
) 通过该字段检索产品。您可以创建一个 new custom action or customize the product's retrieval。第二种情况意味着您总是希望通过 store_id_product
.