Сделать более похожим на этот вид с помощью кнопки - PullRequest
0 голосов
/ 26 апреля 2019

Я хочу создать кнопку из результата поиска из Solr (7.5.0) в Blacklight (7.0.1), которая при клике должна отображать вид, похожий на этот.

Я пытался включить кнопку в catalog_controller и вызывать представление типа «больше как это» через вспомогательную функцию.Также попытался направить маршруты в маршрутах.

Контроллер каталога:

config.add_index_field 'id', helper_method: :more_like_this

Вспомогательная функция

def more_like_this
render_document_sidebar_partial
end

catalog_helper_behavior.rb

def render_document_sidebar_partial(_document = @document)
  render partial: 'show_sidebar'
end

Дает мне следующую ошибку:

No route matches {:action=>"show", :controller=>"bookmarks", :id=>nil}, missing required keys: [:id]

Как правильно передать идентификатор?

Я просто хочу, чтобы Blacklight отображал более похожий вид на правой боковой панели при нажатии кнопки.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

В ваших публикациях есть две проблемы: 1. У части show_sidebar ожидается локальный вызываемый документ, поэтому он должен вызываться с чем-то вроде:

 render partial: "show_sidebar", locals: { document: _document }
  1. конфигурация helper_method для полей Blacklight идентифицирует метод, который, как ожидается, будет вызван с хэшем аргумента, который минимально имеет ключ: document для SolrDocument и ключ: field для имени поля - метод more_like_this является помощником Rails (то есть возвращает строку html_safe), а не помощник значения поля Blacklight.
1 голос
/ 26 апреля 2019

возможно, вам не хватает действия index для закладок (в ваших маршрутах и, возможно, в вашем контроллере).

URL, на который вы идете, вероятно, /bookmarks, но у вас есть только что-то вроде get "/bookmarks/:id" в ваших маршрутах, поэтому он не находит обязательный параметр :id.

...