1

アプリケーションに meta_search gem を実装して、請求テーブルのさまざまなフィールドをフィルタリングしようとしています。

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

フィルタの 1 つをクリックして選択すると、次のエラーが表示されます。

ID のない Sla が見つかりませんでした。

@sla.id パラメータが @search に渡されていないためだと思いますが、何が間違っているのかわかりません。これに苦しんでいる、貧しく過労な女の子を助けてください。;)

アドバイスをよろしくお願いします。

4

2 に答える 2

0

index が呼び出されたときに :sla_id パラメータがかなり欠落していると思います。

于 2011-08-17T08:31:44.460 に答える
0

この行

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

のように見えるべきだった

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

原因は、インデックスアクションを使用してすべてのレコードをslaから表示していると思います

しかし、ショーでは params:id で使用しています

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

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

于 2011-10-12T00:40:10.977 に答える