2011-12-05 3 views
0

私はさまざまなカテゴリ(CategoryA, CategoryB, CategoryC, ...)とさまざまな店舗(StoreA, StoreB, StoreC, ...)の商品を持っているeコマースのウェブサイトを実装しています。データベースの2つ以上の列を考慮したクエリ。 (レール3.1.1とRuby 1.9.2)

私はshow_by_categoryshow_by_storeメソッドを実装して、特定のカテゴリのデータベースとストアからそれぞれの製品を返すことに成功しました。しかし、私はshow_by_category_in_storeの実装方法については不明です。ここでは、特定の店舗で利用できる同じカテゴリの商品のリストと、show_by_store_in_categoryが表示されます。私のモデルは、製品カテゴリおよびストア

def show_by_category 
    @title = "#{Category.find(params[:id]).name}" 
    @products = Category.find(params[:id]).products 
end 

def show_by_college 
    @title = "#{College.find(params[:id]).name}" 
    @products =[] 
    Store.within(3, :units=>:km, :origin=>[Store.find(params[:id]).lat, Store.find(params[:id]).lng]).order('distance ASC').each {|c| @products << c.products} 
end 

製品belongs_toカテゴリや店舗、店舗やカテゴリーhas_many製品です。 あなたのお手伝いをよろしくお願いします。ありがとう!

答えて

1

これを達成するために、(ではなく_and_)の規約を使用して、カテゴリとストアIDの両方を渡すことができます。だから、

:あなただけ指定したカテゴリーストアの両方にある製品を提供します

@products = Product.find_by_category_and_store(@category, @store)

ActiveRecord::Base documentationを参照してください。具体的には、複数の列名を持つ検索結果を表示する例については、「動的属性ベースの検索ツール」を参照してください。

+0

どのように私はこのためのビューを書くことができるかについての洞察力。私は2つの引数を渡すことで一時停止します。どのように私はそれらを眺めから集めるのだろうか? –

+0

私は分かりません。プロダクトは '@ products'変数に返されます。これはビューで自動的に利用可能です。あなたの見解では、オブジェクトの他のコレクションと同様に '@ products'変数を参照し、それを使用してページ上の製品を一覧表示します。 – jefflunt

関連する問題