2

このデザインのようなメニューを作りたい

並べ替え方法とカテゴリを選択するメニューが表示されます。したがって、ユーザーが[注目のデザイン]を押すと、[注目]フィールドがtrueに設定されたすべてのiPhoneデザインが表示されます。ドロップダウンメニューからiPadのデザインを選択して、注目のiPadのデザインが表示されるようにしたいと思います。しかし、これをどのように達成するかはわかりません。

誰かが私にポインターを与えることができますか?

レール3.2.2とmongoidを使用しています。

より詳しい情報

だから私はMeer.liですべてを稼働させています。メニューはそこにあり、すべてです。追加する必要があるのはドロップダウンメニュー(フォームに表示されるものなど)だけなので、iPhone、iPad、Windowsのデザインなどを表示するかどうかを選択できます。

Railsでドロップダウンメニューを作成することはできますが、それをクエリの方法として使用する方法(通常のメニューの場合と同様)はまったく別のものです。

モデルコード:

field :featured, :type => Boolean, :default => false
field :project_number, :type => Integer, :default => 0
field :show, :type => Boolean, :default => true
field :full_member, :type => Boolean, :default => false
field :first_design, :type => Boolean, :default => false
field :option, :type => String 

default_scope desc(:created_at)
scope :full_member_and_show, where(full_member: true).and(show: true)
scope :not_full_member_and_show, where(full_member: false).and(show: true)

コントローラーコード:

def newest
  designs = Design.full_member_and_show

  respond_to do |format|
    format.html
  end
end

したがって、基本的に、ドロップダウンメニューから別の項目を選択するたびにクエリを実行する場合は、最後に.and(:option => "iPad")を追加します。

それは意味がありますか?

4

1 に答える 1

0

あなたは近くにいます。ファセット検索を行うときは、最初にコントローラーに空の配列を作成することから始めます。

@current_items = []

次に、取得したパラメータに基づいてアイテムを追加し始めます。ここで本当にドライになりたい場合は、フォーム内のファセットアイテムの名前からスコープに名前を付ける必要があります。またはその逆の場合は、フォームからスコープに名前を付けます。このようにあなたはこのようなことをすることができます:

params[:faceted_items].each do |item|
  @current_items << Object.where("#{item}" => true)
end

@current_items次に、ビュー内の返されたアイテムの配列として呼び出します。

コメントごとに更新

ファセット検索は、さまざまな属性を選択または選択することで絞り込むことができる検索です。

それがあなたが探しているものであるなら、あなたは検索機能全体を埋め込みたいと思うかもしれないように思えます。sunspot-solrまたはsphinxのいずれかをお勧めします。どちらもそのタスクで大丈夫な仕事をします。

于 2012-07-14T22:34:12.857 に答える