2

我想在这个设计上创建一个菜单

一个菜单,您可以在其中选择您的排序方式以及您想要进入的类别。因此,当人们按下“特色设计”时,将显示所有“特色”字段设置为 true 的 iPhone 设计。我希望人们能够从下拉菜单中选择 iPad 设计,然后出现特色 iPad 设计。我不知道如何做到这一点。

有人可以给我指点吗?

我正在使用 rails 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 回答