Rails 3 и MetaSearch
Я пытаюсь внедрить гем meta_search в свое приложение для фильтрации различных полей в таблице счетов:
class PeriodBillingsController < ApplicationController
def index
@sla = Sla.find(params[:sla_id])
@search = PeriodBilling.latest_billing.search(params[:search])
@period_billings = @search.order("we_date desc").where("sla_id = ?", @sla.id)
end
end
И мнение:
<%= form_for @search do |f| %>
<%= f.label :pe_number_eq, "Period #" %>
<%= select("period_billing", "pe_number", (1..12), {:include_blank => true}) %>
<%= f.label :appcode_eq, "Appcode" %>
<%= collection_select( "period_billing", "appcode_id", Appcode.where("sla_id = ?", @sla.id), :id, :appcode, :include_blank => true ) %>
<%= f.label :dpc_employee_eq, "Named Resource" %>
<%= collection_select( "period_billing", "dpc_employee_id", DpcEmployee.all, :id, :fullname, :include_blank => true ) %>
<%= f.submit "Filter Records" %>
<% end %>
Когда я нажимаю, чтобы выбрать один из фильтров, я получаю ошибку:
Не могу найти Sla без удостоверения личности.
Я предполагаю, что это потому, что мой параметр @ sla.id не переносится в @search, но я не знаю, что я делаю неправильно. Пожалуйста, помогите бедной, перегруженной работой девушке, которая борется с этим.;)
Спасибо заранее за любые советы.
2 ответа
Эта линия
@sla = Sla.find(params[:sla_id])
должен был выглядеть
@search = Sla.serch(params[:search])
потому что я предполагаю, что вы используете действие index для отображения всех записей
но в шоу вы используете с params:id
@sla = Sla.find(params[:id])
возможно, это поздний ответ, но, возможно, у кого-то будет такая же проблема.
Я считаю, что это довольно отсутствует: параметр sla_id при вызове индекса.