2011-07-06 4 views
1

私は課金テーブル内のさまざまなフィールドでフィルタするために自分のアプリケーションでmeta_searchの宝石を実装しようとしています:レール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 %> 

に私をクリックすると、私は私の@ sla.idのPARAMが@sに運ばれていないからだと仮定している

Couldn't find an Sla without an ID.

:フィルタのいずれかを選択し、私はエラーを取得します私は何が間違っているのか分かりません。これに苦労している貧しく働き過ぎた少女を助けてください。 ;)

ありがとうございました。

答えて

0

このライン

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

は、私はあなたがSLA

オフが、ショーのすべてのレコードを表示するには、indexアクションを使用していると仮定

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

などの原因を見てきたはずですあなたはparamsで使用しています:id

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

おそらく遅い応答ですが、誰かが同じ問題を抱えている可能性があります。

0

私はそれがむしろ欠けていると信じています。インデックスが呼び出されたときのsla_idパラメータです。