Rails 4.2.4 - 带有关联的简单形式的动态菜单

时间:2016-11-20 13:44:57

标签: ruby-on-rails dynamic menu associations

我想根据其他所选字段的选择填充一个选择字段。当用户尝试提交新产品时,它与类别/子类别有关。用户选择字段1中的主要类别,在选择主要类别后,他可以从字段1中选择从主要类别中选择的主要类别的字段2子类别中选择。它基于关联,因此这对我来说更难。

产品型号:

class Product < ActiveRecord::Base
  belongs_to :user      
  has_many :categorizations
  has_many :categories, through: :categorizations    
end

类别模型:

class Category < ActiveRecord::Base
  belongs_to :parent, class_name: "Category"
  has_many :children, class_name: "Category", foreign_key: "parent_id"
  has_many :categorizations
  has_many :products, through: :categorizations
end

分类模型:

class Categorization < ActiveRecord::Base
  belongs_to :product
  belongs_to :category
end

new.html.erb

<%= simple_form_for @product, :html => { multipart: true } do |f| %>      
  <%= f.association :categories, collection: Category.where(parent_id: nil), prompt: 'Choose category' %>
  <%= f.association :categories, collection: Category.where.not(parent_id: nil), prompt: 'Choose subcategory' %>      
  <%= f.button :submit, "Submit product" %>
<% end %>

更新:

class ProductsController < ApplicationController
  def update_categories
    @categories = Category.where("parent_id = ?", params[:category_id])
    respond_to do |format|
     format.js
    end
  end
end

一些路线:

get 'products/update_categories', as: 'update_categories'

0 个答案:

没有答案