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

时间:2015-08-04 07:12:25

标签: ruby-on-rails dynamic-linking

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

在下拉菜单中单击类别项时的预期查询将是这样的:

从菜单中选择*,其中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

视图/菜单/ index.html.haml

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

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

1 个答案:

答案 0 :(得分:1)

参考这个。 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|