1

我的应用程序中有以下型号。

class Category < ActiveRecord::Base
  validates :name, :presence => true
  validates :name, :uniqueness => { :scope => :parent_id, :case_sensitive => false }

  belongs_to :parent, :class_name => "Category"
  has_many :children, :class_name => "Category", :foreign_key => "parent_id"
end

而且我的应用程序中也启用了 rails_admin。在自动生成的管理站点中,我在选择父子类别时遇到问题,如附图所示。

Rails 管理示例

在这个例子中,我实际上在“内存”(父)下有“桌面内存”(子)。如何在下拉菜单和选择列表中识别它?也许使用“内存 - 桌面内存”之类的东西。

4

1 回答 1

0

如果您使用一些更好的树实现而不是普通的实现,您可以将自然排序定义为树排序,并将标签定义为包含嵌套级别的提示。

例如,在nested_set 实现中,您可以使用:left字段进行排序,并使用:depth字段(如果可用)将数字箭头添加到自定义方法(例如:display_name),例如获取">Desktop Memory"子项的标签。

然后只需将您的自定义方法作为首选 object_label_method 添加到 rails_admin:

RailsAdmin.config do |config|
  # ...
  config.label_methods.unshift :display_name
  # ...
end
于 2012-07-13T10:44:42.557 回答