2011-07-06 110 views
1

我想實現我的應用程序在一個計費表各個領域篩選meta_search寶石:的Rails 3和元搜索

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 %> 

當我點擊選擇一個過濾器,我得到一個錯誤:

Couldn't find an Sla without an ID.

我假設這是因爲我的@ sla.id參數沒有被帶到@搜索,但我不知道我做錯了什麼。請幫助一位正在爲此苦苦掙扎的窮人,過度勞累的女孩。 ;)

在此先感謝您的任何建議。

回答

0

此行

@sla = Sla.find(params[:sla_id])

應該已經長得很像

@search = Sla.serch(params[:search])

因爲我假設你使用的索引操作來關閉顯示SLA

但在節目中的所有記錄您正在使用params:id

@sla = Sla.find(params[:id])

可能這是一個遲到的反應,但可能會有人會有同樣的問題。

0

我相信它是相當缺失:調用索引時的sla_id參數。