Я занят просмотром трансляций Rail на докладчиках и хотел бы реорганизовать одного из своих докладчиков, чтобы включить шаблон страницы.
Скринкаст, который я смотрел, называется 287-presenters-from-scratch
Я инициализировал докладчика так, как он предложил, и создал вспомогательный метод в вспомогательном файле приложений.
Представление, которое я пытаюсь построить с помощью ведущего, представляет собой шаблон уведомления, который используется на многих страницах с загрузками.
Поскольку вы можете загружать более одного файла одновременно, у нас может быть несколько уведомлений одного типа или несколько уведомлений каждого типа. Выгружаются данные об успешных и завершенных загрузках, в то время как для некоторых поврежденных загрузок могут потребоваться новые шаблоны импорта, а для других загрузок с ошибками может потребоваться исправление. Вид уведомлений через презентер выглядит так.
- present_upload(host, current_account, current_user, context) do |uploads_presenter|
.pending_uploads
= uploads_presenter.display_pending_uploads
.faulty_uploads
= uploads_presenter.display_faulty_uploads
.corrupt_uploads
= uploads_presenter.display_corrupt_uploads
.completed_uploads
= uploads_presenter.display_complete_uploads
.successful_uploads
= uploads_presenter.display_successful_uploads
Пример от ведущего
class UploadsPresenter
attr_reader :host, :user, :account, :context
def initialize(host, current_account, user, context, template)
@host = host
@user = user
@account = current_account
@context = context
@template = template
end
def h
@template
end
def display_pending_uploads
return unless uploads_pending?
s = []
pending_uploads.each do |upload|
s << h.render(partial: 'upload/pending_upload', locals: {upload: upload})
end
return s
end
def display_complete_uploads
return unless uploads_complete?
s = []
completed_uploads.each do |upload|
s << h.render(partial: 'upload/complete_upload', locals: {upload: upload})
end
return s
end
...
end
Только это отображается на странице.. это не преобразование его в читаемый html, а как массив, который был преобразован в строку ??
я пытался вызвать return s.join
, но это просто берет то, что находится внутри массива, и преобразует его в строку, но это отображается так же, за исключением символов массива.
как затем отображать частичные фрагменты из ведущего, чтобы они отображались как html в представлении?