0

おそらくばかげた質問なので、事前にお詫び申し上げます。

すべてを表示するために使用してItem Controllerいるインデックスアクションがありますitems(duh)。ここで、表示されているアイテム(ここでは、タイトルに「靴」が含まれているアイテムのみ)をフィルタリングします。

残念ながら、インデックスアクションの下で@item = Item.find(params [:id])ステートメントを定義することはできません。

ItemsController#indexで恐ろしいActiveRecord::RecordNotFoundを取得しています----IDエラーのないアイテムを見つけることができませんでした。

何か案は?

アイテムコントローラー

def index
     @item = Item.find(params[:id])
     @items = Item.where(@item.title =~ /shoes/i).paginate(:page => params[:page], :per_page => 30)

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @items }
    end
  end
4

1 に答える 1

5

これは実際にあなたが望むものです。あなたが試したことは意味がありません。

  def index
     @items = Item.where("title ILIKE '%shoes%'").paginate(:page => params[:page], :per_page => 30)

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @items }
    end
  end

編集:

サポートされているすべてのDBと互換性を持たせるために、代わりに次のようなことができるようです。

item=Item.arel_table
Item.where(item[:title].matches('%shoes%'))
于 2012-11-12T02:25:50.210 に答える