1

У меня есть следующая модель, доступная в моем приложении.rails_admin принадлежит к выбору переименования полей

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 Admin sample

В этом примере, я на самом деле есть "Desktop Memory" (ребенок) в разделе "Память" (родителю). Как определить его в раскрывающемся меню, а также в списке выбора? Возможно, с чем-то вроде «Memory - Desktop Memory».

ответ

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