繁体   English   中英

使用Ransack gem在表单中搜索Paper_trail历史记录

[英]Search form for Paper_trail history using Ransack gem

我正在努力寻找一份我的有效记录历史记录的搜索表。 我正在使用paper_trail宝石以及随身行李。 两者都运行良好。 但是,每当我尝试实现搜索表单时,都会出现一个奇怪的错误:

#<#:0x007fede31da910>的未定义方法`paper_trail_versions_path'

根据我的观点,这一行会突出显示:

<%= search_form_for @q, html: {class: "input-group"} do |f| %>

这是控制器的代码:

def history
 @all_versions = PaperTrail::Version.order('created_at DESC')
 @versions = @all_versions.paginate(:page => params[:page], :per_page => 100)
 @q = @versions.search(params[:q])
 @versions = @q.result
 respond_to do |format|
    format.html
  end
end

观点:

<%= search_form_for @q, html: {class: "input-group"} do |f| %>
  <%= f.search_field :whodunnit_or_item_id_cont, placeholder: "Search for Users or Actions..", class: "form-control" %>
  <span class="input-group-btn">
    <%= button_tag(type: 'submit', class: "btn btn-default") do %>
    <i class="fa fa-search"></i>
    <% end %>
  </span>
<% end %>

有任何想法吗?

提前致谢!

编辑已解决,感谢回答:

<%= search_form_for @q, html: {class: "input-group"}, :url => "/dashboards/history/" do |f| %>

您看到的错误来自于search_form_for帮手试图猜测您的表单操作的URL。

后台,Ransack使用polymorphic_path rails helper, 根据文档 ,这是一种方法

在给定Active Record模型实例的情况下,智能地解决命名路由调用

在您的情况下,您的模型是paper_trail_versions_path PaperTrail::Version ,它解析为paper_trail_versions_path

要解决该错误,您可以:

  • 在您的routes.rb文件中定义相应的资源,以便定义帮助程序
  • 手动定义助手
  • 向搜索表单提供url选项以及表单操作的路径。

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM