В настоящее время у меня есть приложение Rails 3.0.10, и я создал две модели с простыми ассоциациями: has_many и own_to.
После установки плагина ActiveAdmin и создания соответствующих файлов ресурсов Ruby я заметил странное поведение.
Ниже вы можете видеть, что «Файл задания» принадлежит «Клиентам Ernet». Все ассоциации работают правильно, однако отображаемое имя отображается как фактический объект ActiveRecord, а не как имя клиента.
Это вид шоу в разделе «Файл задания»:
Но если я перейду к просмотру реального клиента, появится правильный текст:
Должно быть что-то не так в ресурсе «Файл задания», что вызывает это, но я не могу понять, что это может быть. Погуглив, я нашел это: http://groups.google.com/group/activeadmin/browse_thread/thread/2a261e070efa7bae
В файле JobFile.register я указал отображаемое имя следующим образом:
filter :ernet_client, :display_name_methods => :display_name
Однако это не сработало, и я безрезультатно перебирал все другие доступные имена.
Я просмотрел зависимости ActiveAdmin, и sass-rails кажется единственным, но это если вы используете 3.1, а я использую Rails 3.0.10.
И, наконец, чтобы убедиться, что мои ассоциации действительно работают, я открыл консоль Rails и создал файл задания:
job = JobFile.new
=> #<JobFile hash returned>
job.ernet_client_id = 2
=> 2
job.ernet_client.client_name
=> Target
Кажется, все работает как надо.
Кто-нибудь знает, как это решить?