2016-11-13 2 views
0

Ich bin ein Neuling für Ruby on Rails. Ich habe vor einem Monat angefangen, in RoR zu arbeiten. Meine Frage ist:Dynamische Auswahl Tag in Ruby on Rails

Wie kann ich dynamische Auswahltag, der mir Größen basierend auf ausgewählten Farbe der Produktvariante über AJAX zeigt?

Jedes Produkt hat viele Varianten. Jede Variante hat eine Farbe, eine Größe und eine Menge.

Hier sind meine Modelle:

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 

Hier ist meine Produktansicht:

<%= 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 %> 

Ich will mehr Informationen zur Verfügung stellen, wenn es gebraucht wird. Danke im Voraus.

Antwort