Rails: 从动态下拉列表创建动态过滤器

Rails: creating dynamic filter from dynamic dropdown list

我是 Rails 的新手,需要帮助。 我在索引页面的导航栏上有一个类别下拉列表,它显示了菜单项列表。下拉列表是从类别 table 动态生成的,但我不知道如何从动态生成的类别动态创建 link 以便按 selected 类别过滤项目。

单击下拉菜单中的类别项时的预期查询如下所示:

select * 来自 menus.category_id = category.id

的菜单

category.rb

class Category < ActiveRecord::Base
  has_many :menus
end

menu.rb

class Menu < ActiveRecord::Base
  belongs_to :category
end

menus_controller.rb

def index
    @brand = Brand.find(params[:brand_id])
    @category = @brand.categories
    @menu = Menu.where(brand_id: params[:brand_id]).order("created_at DESC")
end

views/menus/index.html.haml

  %ul.dropdown-menu
    - @category.each do |category|
      %li
        %a= link_to category.name

我设法从数据库生成了类别,但不知道从哪里开始。请帮忙。

参考这个。 http://pullmonkey.com/2012/08/11/dynamic-select-boxes-ruby-on-rails-3/ 很有魅力。

你只需要这样的东西

collection_select(nil, :genre_id,  @genres,  :id, :name, {:prompt   => "Select a Genre"}, {:id => 'genres_select'})

不需要加

@category.each do |category|