簡體   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