2016-11-13 4 views
0

Я новичок в Ruby on Rails. Я начал работать в RoR месяц назад. Мой вопрос:Динамический тег выбора в Ruby on Rails

Как я могу сделать динамический тег select, который показывает размеры меня на основе выбранного цвета варианта продукта через AJAX?

Каждый продукт имеет много вариантов. Каждый вариант имеет один цвет, один размер и количество.

Вот мои модели:

class Color < ActiveRecord::Base 
    has_many :variants, dependent: :destroy 
    validates :name, presence: true, length: {minimum: 2, maximum: 20} 
    validates :hex, presence: true, uniqueness: true, length: { is: 7}, format: { with: /\A#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})\z/ } 
end 

class Size < ActiveRecord::Base 
    has_many :variants, dependent: :destroy 
    validates :size, uniqueness: true, numericality: { only_integer: true, greater_than_or_equal_to: 28, less_than_or_equal_to: 49} 
end 

class Variant < ActiveRecord::Base 
    belongs_to :product 
    belongs_to :size 
    belongs_to :color 

    validates :quantity, :numericality => { :greater_than_or_equal_to => 0 } 
    validates :color_id, presence: true 
    validates :size_id, presence: true 
end 

Вот мой вид продукта:

<%= form_tag({controller: "carts", action: "add"}, method: "post", class: "form") do %> 
    Color: 
    <%= select_tag :color, options_from_collection_for_select(@colors, "name", "name"), id: 'color', prompt: 'Select color', onchange: 'onChange()' %> 
    Quantity: 
    <%= number_field_tag :quantity, '1', min: 1%> 
    Size: 
    <%= select_tag :size, options_from_collection_for_select(@sizes,"size", "size"), id: 'size', prompt: 'Select size', onchange: 'onChange()'%> 

    <%= submit_tag "ADD TO CART", class: 'btn btn-default' %> 
    <%= submit_tag "BUY NOW", class: 'btn btn-dark-grey', style: "margin-left:10px"%> 
<% end %> 

Я предоставлю больше информации, если она необходима. Заранее спасибо.

ответ

Смежные вопросы