В ActiveAdmin я знаю, что могу использовать декораторы , такие как Draper, для подачи display_name
и name
, но как мне использовать декоратор для простых ссылок на ассоциации (например, auto_link (ресурс) )?
Учитывая, что у меня есть сообщение и комментарий:
# Post.rb
class Post
has_many :comments
end
# Comment.rb
class Comment
belongs_to :post
end
# decorators/post_decorators.rb
class PostDecorator
def name
"Custom Post Name ##{object.id}"
end
end
# admin/post.rb
ActiveAdmin.register Post do
delegate_with PostDecorator
end
# admin/comments.rb
ActiveAdmin.register Comment do
index do
# ...
column :post
# ...
end
show do
default_main_content
end
end
При просмотре области ActiveAdmin для комментариев, шоу default_main_content
иcolumn :post
индекса оба автоматически связываются с объектом Post, но никогда не используют декоратор.
Я увижу: Post #4
вместо Custom Post Name #4
в этих разделах.
Когда я посещаюобласть администратора, она будет отлично использовать оформленное имя.
Как получить автоматические ссылки для использования Draper во всей области администратора?
В настоящее время у меня есть def name
насам объект, но это свойство отображения и его нужно переместить в декоратор.