![](/img/trans.png)
[英]Passing text_field value to will_paginate as parameter in Rails
[英]Rails will_paginate two objects on the same page, passing one param from search field
我在兩個實例變量的結果上使用了will_paginate,每個變量在兩個不同的PgSearch.multisearch
方法上使用相同的param[:query]
。 在視圖中,當單擊其中一個分頁鏈接時,兩個表都在更新。 有沒有辦法解決這個問題? 從表單中只傳遞一個參數? (因為我的搜索表單只有一個文本字段)。 我搜索並經歷了類似的問題,其中大多數建議使用兩個參數。但是他們都沒有給我任何想法用一個參數來解決這個問題。 :/
代碼形式如下:
<%= form_tag("/search", :method => "get", :remote => true) do %>
<%= label_tag(:query, "Search for: ") %>
<%= text_field_tag(:query, params[:query]) %>
<%= submit_tag("Search", class: "btn btn-primary") %>
<% end %>
控制器代碼:
def index
@employee = Employee.find(session[:user_id])
@search_employees = PgSearch.multisearch(params[:query]).where(:searchable_type => "Employee").paginate(page: params[:page], :per_page => 5)
@search_customers = PgSearch.multisearch(params[:query]).where(:searchable_type => "Customer").paginate(page: params[:page], :per_page => 5)
respond_to do |f|
f.html
f.js
end
end
視圖中的代碼:
<% if !@search_employees.empty? %>
<h2>Employees</h2>
<table class="table table-hover">
.
.
<% @search_employees.each_with_index do |doc, index| %>
<% user = doc.searchable %>
<tr id="employee-<%= user.id %>">
.
.
<% end %>
</tbody>
</table>
<% end %>
<%= will_paginate @search_employees %>
<% if !@search_customers.empty? %>
<h2>Customers</h2>
<table>
.
.
</table>
<% end %>
<%= will_paginate @search_customers %>
我可以從表單中發送兩個具有相同文本字段值的不同參數嗎? 如果是的話,請讓我知道如何。 任何想法或建議將不勝感激。 :)
提前致謝。 :)
分頁取決於page
參數,但不取決於搜索表單中的query
參數,因此您無需更改表單中的任何內容。
要僅更新相應的表,您需要在至少一個表中自定義page
參數。 例如,為客戶更改頁面參數:
<%= will_paginate @search_customers, :param_name => 'customers_page' %>
在控制器中:
@search_customers = PgSearch.multisearch(params[:query])
.where(:searchable_type => "Customer")
.paginate(:page => params[:customers_page], :per_page => 5)
這應該解決問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.