Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在Rails 3.2中以字符串形式呈现js.erb文件?_Jquery_Ruby On Rails_Ruby On Rails 3_Erb - Fatal编程技术网

Jquery 如何在Rails 3.2中以字符串形式呈现js.erb文件?

Jquery 如何在Rails 3.2中以字符串形式呈现js.erb文件?,jquery,ruby-on-rails,ruby-on-rails-3,erb,Jquery,Ruby On Rails,Ruby On Rails 3,Erb,以下是Rails 3.2应用程序的代码new.js.erb文件: <% if params[:order][:field_changed] == 'quote_id' && @digi_keys.present? %> <% @quote_ids.each_with_index do |v, i| %> <% quote = PurchaseOrderx.quote_class.find_by_id(v)%> <% i

以下是Rails 3.2应用程序的代码new.js.erb文件:

<% if params[:order][:field_changed] == 'quote_id' && @digi_keys.present? %>
  <% @quote_ids.each_with_index do |v, i| %>
    <% quote = PurchaseOrderx.quote_class.find_by_id(v)%>
    <% if quote %>
      $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_product_name').val("<%=quote.product_name%>");
      $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_product_spec').val('<%=quote.product_spec%>');
      $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_unit_price').val('<%=quote.unit_price%>');
      $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_unit').val('<%=quote.unit%>');      
    <% else %>
      $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_product_name').val('');
      $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_product_spec').val('');
      $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_unit_price').val('');
      $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_unit').val('');
    <% end %> 
    $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_qty').val('');
    $('#order_order_items_attributes_' + <%=@digi_keys[i]%> + '_item_note').val(''); 
    $('#order_po_total').val('');  
  <% end %>
  $('#order_field_changed').val('');
<% end %>



或者这种编码实践有问题吗?

是的,只要你不混入html,你的js.erb应该可以正常工作。您可以使用此选项将其转换为字符串:

erb  = ERB.new("js_erb_code")
render erb.result

你是在问如何从js.erb文件中渲染部分吗?你的代码很难阅读,看起来很难看。您应该在控制器中使用这些if-else语句,而不是在js文件中使用。只是根据您的编码呈现不同的文件。@@MohamedDia27,是的,它是关于呈现方式的。@@isaacsloan,js_erb_code是保存erb视图代码的字符串变量。js_erb_代码是否需要在erb.new()中引用和取消引用?下面是有效的代码:render inline:erb.new(@js_erb_code).result(binding)
<% render js: js_erb_code %>
erb  = ERB.new("js_erb_code")
render erb.result