轨道上的Ajax ruby​​不呈现js.erb

时间:2014-03-26 12:48:56

标签: javascript jquery ruby ajax ruby-on-rails-3

我的问题

   <script type="text/javascript">
      $("select#product_subcategory_id").change(function(){
        var id_value_string = $(this).val();
        if (id_value_string == "") {  
        }
        else{
          $.ajax({
            type : 'GET',
            url: /admin_property_update/ + id_value_string,
            dataType : 'script'
          });
        }
        return false;  
      });
    </script>

这个js代码在视图中。在控制器中我有

def admin_property_update
    subcategory = Subcategory.find(params[:id])
    @properties = subcategory.properties 
end

我有admin_property_update.js.erb

$('#property').html('<%= escape_javascript(render("admin/products/property")) %>');

_property.html.erb:

<% @properties.each do |property|%>
        <div class="form-group">
          <label class="col-lg-3 control-label"><%= property.title%></label>
          <div class="col-lg-9">
            <% if property.value_property_product == nil%>
              <%= text_field_tag "product[value_property_products][#{property.id}]", nil, class: "form-control" %>
            <% else%>
              <%= text_field_tag "product[value_property_products][#{property.id}]", property.value_property_product.value, class: "form-control" %>
            <%end%>
          </div>
        </div>
      <%end%>

和new.html.erb

<% unless @properties.empty?%>        
  <div id="property">
    <%= render("admin/products/property")%>
  </div>
<%end%>

在终端我看到,在控制器中发出和处理了什么请求,但在页面上,不渲染_property.html.erb。怎么了? THX。

1 个答案:

答案 0 :(得分:0)

请试试这个

$('#property').html('<%= escape_javascript(render :partial => "admin/products/property") %>');