我想根据其他所选字段的选择填充一个选择字段。当用户尝试提交新产品时,它与类别/子类别有关。用户选择字段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'