Sha256: 89b2b7af6b50da02ecc2c58e4eca030f383eb54f323ecc3100d5016a3e384625
Contents?: true
Size: 1.5 KB
Versions: 6
Compression:
Stored size: 1.5 KB
Contents
:ruby type_collection = field.polymorphic_type_collection type_column = field.association[:foreign_type].to_s selected_type = field.bindings[:object].send(type_column) collection = field.associated_collection(selected_type) selected = field.bindings[:object].send(field.association[:name]) column_type_dom_id = form.dom_id(field).sub(field.method_name.to_s, type_column) = form.select type_column, type_collection, {:include_blank => true, :selected => selected_type}, :id => column_type_dom_id = form.select field.method_name, collection, {:include_blank => true, :selected => selected.try(:id)}, :style => "margin-left:10px;" = form.javascript_for(field) do :plain var urls = #{field.polymorphic_type_urls.to_json.html_safe }; $("#{form.jquery_namespace(field)} ##{column_type_dom_id}").bind("change", function(e){ if ("" == $(this).val()) { $("##{ form.dom_id(field) }").html('<option value=""></option>'); } else { $.ajax({ url: urls[$(this).val()], data: { compact: true, all: true }, beforeSend: function(xhr) { xhr.setRequestHeader("Accept", "application/json"); }, success: function(data, status, xhr) { var html = '<option></option>'; $(data).each(function(i, el) { html += '<option value="' + el.id + '">' + el.label + '</option>'; }); $("#{form.jquery_namespace(field)} ##{ form.dom_id(field) }").html(html); } }); } });
Version data entries
6 entries across 6 versions & 2 rubygems