通过按钮

时间:2019-04-26 10:48:36

标签: ruby-on-rails solr blacklight

我想从Blacklight(7.0.1)的Solr(7.5.0)的搜索结果中创建一个按钮,单击该按钮应呈现更类似此视图的视图。

我试图将按钮包含在catalog_controller中,并通过一个辅助函数来调用类似此视图的视图。 还尝试在routes.rb中定向路由。

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]

如何正确传递ID?

我只是想让Blacklight在按下按钮时在右侧栏中渲染更相似的视图。

谢谢。

2 个答案:

答案 0 :(得分:2)

两件事是您发布的内容中的问题: 1. show_sidebar部分希望有一个本地调用的文档,因此应使用类似以下内容的调用:

 render partial: "show_sidebar", locals: { document: _document }
  1. Blacklight字段的helper_method配置标识期望使用参数哈希值调用的方法,该哈希值至少具有SolrDocument的:document键和字段名的:field键-more_like_this方法是Rails助手(即返回html_safe字符串),而不是Blacklight字段值助手。

答案 1 :(得分:1)

也许您错过了书签的<button type="submit" id="sendtohaskell">操作(在您的路线中,或者在您的控制器中)。

您要访问的网址可能是index,但您的路由中只有/bookmarks之类的内容,因此找不到所需的get "/bookmarks/:id"参数。