使用下拉菜单创建菜单



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

一个菜单,你可以在其中选择排序方式和你想进入的类别。因此,当人们按下"特色设计"时,所有"特色"字段设置为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")。

这有道理吗?

你很接近。当我进行分面搜索时,我首先在控制器中创建一个空数组:

@current_items = []

然后我开始根据我得到的参数添加项目。现在,如果你想在这里真正干燥,你应该根据表单中分面项目的名称命名你的Scopes。反之亦然,根据表单命名你的范围。这样你就可以做这样的事情:

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

然后调用@current_items作为视图中返回项的数组。

根据评论更新

分面搜索是一种可以通过选择和/或根据不同属性进行选择来缩小范围的搜索。

如果这就是你想要的,听起来你可能想嵌入一个完整的搜索功能。我推荐太阳黑子solr或狮身人面像。两人都做得不错。

相关内容

  • 没有找到相关文章