這裏是爲Rails 3.2的應用程序代碼new.js.erb文件:如何在Rails 3.2的字符串中渲染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_' + <%[email protected]_keys[i]%> + '_product_name').val("<%=quote.product_name%>");
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_product_spec').val('<%=quote.product_spec%>');
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_unit_price').val('<%=quote.unit_price%>');
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_unit').val('<%=quote.unit%>');
<% else %>
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_product_name').val('');
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_product_spec').val('');
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_unit_price').val('');
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_unit').val('');
<% end %>
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_qty').val('');
$('#order_order_items_attributes_' + <%[email protected]_keys[i]%> + '_item_note').val('');
$('#order_po_total').val('');
<% end %>
$('#order_field_changed').val('');
<% end %>
我們試圖做的是上面的代碼保存成js_erb_code
字符串和渲染。由於js_erb_code將jquery/javascript和erb代碼混合在一起,我們不確定我們應該在new.js.erb
中使用哪個渲染選項?
<% render inline: js_erb_code %>
或者
<% render js: js_erb_code %>
或者這種編碼的做法是有問題的。
有人可以闡明這一點嗎?非常感謝。
你問'如何渲染一個部分從js.erb文件'? – mohameddiaa27 2014-11-03 18:11:53
你的代碼很難閱讀,看起來很醜。你應該在控制器中使用這些if else語句,而不是在你的js文件中。根據你的編碼渲染不同的文件 – Mandeep 2014-11-03 18:21:11
@@ mohameddiaa27,是的,它是關於如何渲染。 – user938363 2014-11-03 18:36:27