Отображение идентификатора вместо имени в Active Admin Gem

Я установил Ruby on Rails Gem Active Admin и сделал связь между таблицами.

Category 
with fields (category_name:string)

с участием

SubCategory
with fields (sub_category_name:string, category_id:integer)

но когда я просматриваю консоль администратора для подкатегории в раскрывающемся списке категорий вместо их имени, появляется зашифрованная строка, которая относится к идентификатору категории. Это как:

#<Category:0x698a648>
#<Category:0x6958998>

Я хочу, чтобы имя категории было здесь. Я знаю, что функция def to_s может это сделать, но в активном геме администратора я не уверен, где написать эту функцию.

Любая идея будет высоко оценена.


person Astha    schedule 02.03.2012    source источник


Ответы (1)


Вы можете закодировать метод to_s в классе и вернуть имя категории:

#app/models/category.rb
class Category    
  #...

  def to_s
    category_name
  end
end
person bruno077    schedule 02.03.2012
comment
Спасибо за ответ. но я знаю, что могу сделать это в category.rb, но я думаю, это не отразится на активной консоли администратора. я использую активный гем администратора, где у меня есть страницы в папке администратора отдельно, и я уже пробовал вышеуказанную функцию, но безуспешно. - person Astha; 02.03.2012
comment
ActiveAdmin пытается вызвать метод to_s из определения класса объекта. Если вы определите метод в модели, ActiveAdmin найдет его, и он будет работать. - person bruno077; 02.03.2012