Как показать название модели вместо #в выпадающих меню activeadmin? - PullRequest
2 голосов
/ 08 декабря 2011

Я создал ассоциацию, в которой Project has_many Tasks и Task принадлежит_ Project.Я создал форму в admin / tasks.rb

form do |f|
  f.inputs "Details" do
    f.input :title
    f.input :project
  end
  f.buttons
end

Теперь на странице редактирования задачи у меня есть выпадающее меню, в котором я могу выбрать проект, но в нем есть запись #<Project:0x00000...>. Как я могу настроитьзаписи в раскрывающемся списке для отображения поля заголовка проекта?

Я новичок в Rails.

Ответы [ 2 ]

9 голосов
/ 08 декабря 2011

Активный администратор использует formtastic, под капотом formtastic проходит по вашей модели в поисках метода, такого как name, to_s, value, title, который возвращает строку. В тот момент, когда вы видите саму запись данных, если вы хотите, чтобы formtastic показывал имя, убедитесь, что вы поставили что-то вроде

def name
    return self.what_key_you_want_to_use
end

в вашей модели Project.rb.

Это должно позволить formtastic показывать имя действия вместо модели .to_s!

1 голос
/ 10 января 2012

Это решило это для меня: -

В project.rb (Model) для правильного отображения ActiveAdmin в выпадающем списке выберите alias_attribute.

alias_attribute: name,: project_name (или как вы назвали поле в вашей базе данных)

...