Я пытаюсь настроить домашнюю страницу Samvera Hyrax, я хочу отображать только данные из 2 типов коллекций на домашней странице при входе в систему. Я имитировал способ отображения последних документов и внес некоторые изменения в домашний контроллер , _home_content, создал новые файлы в представлениях.
_home_content.html.erb
<hr>
<div class="row">
<div class="col-md-6 col-sm-12">
<h1>Browse certain type of collections</h1> <div class="jumbotron" style="height:600px"><%= render 'modern_collection', modern_documents: @modern_documents%> </div>
<div class="jumbotron" style="height:250px">
</div>
</div>
<div class="col-md-6 col-sm-12">
<h1>Browse Historical collections</h1>
<div class="jumbotron" style="height:400px">
</div>
</div>
</div>
<div>
_modern_collection.html.erb
<h2 class="sr-only"><%= t('hyrax.homepage.modern_collection.title') %></h2>
<% if modern_documents.blank? %>
<p><%= t('.no_public') %></p>
<% else %>
<div id="recent_docs">
<ol class="list-group list-group-striped recent_uploads">
<%= render partial: "modern_collections", collection: modern_documents %>
</ol>
</div>
<% end %>
_modern_collections.html.erb
<li class="recent-item">
<div class="row">
<div class="col-sm-12">
<span class="sr-only"><%= t('hyrax.homepage.modern_collection.document.title_label') %></span>
<h3>
<%= link_to [main_app, modern_collections] do %>
<%= render_thumbnail_tag(modern_collections, {width: 90}, {suppress_link: true}) + modern_+collections.to_s %>
<% end %>
</h3>
<p class="recent-field">
<span class="recent-label"><%= t('hyrax.homepage.modern_collection.document.depositor_label') %>:</span> <%= link_to_profile modern_collection.depositor(t('hyrax.homepage.modern_collecti$
</p>
<p class="recent-field">
<span class="recent-label"><%= t('hyrax.homepage.modern_collection.document.keyword_label') %>:</span> <%= link_to_facet_list(modern_collection.keyword, 'keyword', t('hyrax.homepage.mode$
</p>
</div>
</div>
</li>
homepage_controller.rb
class Hyrax::HomepageController < ApplicationController
# Adds Hydra behaviors into the application controller
include Blacklight::SearchContext
include Blacklight::SearchHelper
include Blacklight::AccessControls::Catalog
# The search builder for finding recent documents
# Override of Blacklight::RequestBuilders
def search_builder_class
Hyrax::HomepageSearchBuilder
end
class_attribute :presenter_class
self.presenter_class = Hyrax::HomepagePresenter
layout 'homepage'
helper Hyrax::ContentBlockHelper
def index
@presenter = presenter_class.new(current_ability, collections)
@featured_researcher = ContentBlock.for(:researcher)
@marketing_text = ContentBlock.for(:marketing)
@featured_work_list = FeaturedWorkList.new
@announcement_text = ContentBlock.for(:announcement)
recent
modern
end
private
# Return 5 collections
def collections(rows: 5)
builder = Hyrax::CollectionSearchBuilder.new(self)
.rows(rows)
response = repository.search(builder)
response.documents
rescue Blacklight::Exceptions::ECONNREFUSED, Blacklight::Exceptions::InvalidRequest
[]
end
def recent
# grab any recent documents
(_, @recent_documents) = search_results(q: '', sort:'', rows: 4)
rescue Blacklight::Exceptions::ECONNREFUSED, Blacklight::Exceptions::InvalidRequest
@recent_documents = []
end
def modern
# grab modern collection_type documents
(_, @modern_documents) = search_results(q: '', sort: collection_type, rows: 4)
rescue Blacklight::Exceptions::ECONNREFUSED, Blacklight::Exceptions::InvalidRequest
@modern_documents = []
end
def sort_field
"#{Solrizer.solr_name('date_uploaded', :stored_sortable, type: :date)} desc"
end
def collection_type
"#{Solrizer.solr_name('modern', :stored_sortable)}"
end
end
Нужно ли редактировать другие файлы? Я не получаю никакой ошибки, я просто выкидываю «no_public data», что означает, что я не получаю никаких коллекций из базы данных.
PS: я новичок в среде ruby