Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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
从呈现rails部分对象创建jquery html对象_Jquery_Ruby On Rails_Datatables - Fatal编程技术网

从呈现rails部分对象创建jquery html对象

从呈现rails部分对象创建jquery html对象,jquery,ruby-on-rails,datatables,Jquery,Ruby On Rails,Datatables,我正在构建一个rails应用程序,并使用datatables.net显示一些可以通过AJAX添加/删除的数据 我有一个rails部分,应该呈现并随后添加到datatable中: <tr id="<%= "device-" + device.id.to_s %>"> <td class="device-id"><%= device.id %></td> <td class="device-devicetype-name"&g

我正在构建一个rails应用程序,并使用datatables.net显示一些可以通过AJAX添加/删除的数据

我有一个rails部分,应该呈现并随后添加到datatable中:

<tr id="<%= "device-" + device.id.to_s %>">
  <td class="device-id"><%= device.id %></td>
  <td class="device-devicetype-name"><%= device.device_type.name %></td>
  <td class="device-serial"><%= device.serial %></td>
  <td class="device-bought"><%= device.bought %></td>
  <td class="device-remarks"><%= device.remarks %></td>
  <td class="device-actions">
    <% if can? :manage, Rental %>
      <%= form_for(@rental.device_rentals.build, remote: true) do |f| %>
        <%= hidden_field_tag :device_id, device.id %>
        <%= hidden_field_tag :rental_id, @rental.id %>
        <%= button_tag(type: 'submit', class: "btn btn-primary") do %>
          <span class="glyphicon glyphicon-plus-sign"></span>
        <% end %>
      <% end %>
    <% end %>
  </td>
</tr>
编辑:这是JS行在响应中呈现的内容:

availableDevicesList.row.add($("\&quot;\\u003ctr id=\\\&quot;device-3\\\&quot;\\u003e\\n  \\u003ctd class=\\\&quot;device-id\\\&quot;\\u003e3\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-devicetype-name\\\&quot;\\u003eBlack Case\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-serial\\\&quot;\\u003eCASE0001\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-bought\\\&quot;\\u003e01.12.2015\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-remarks\\\&quot;\\u003eMaserati sticker\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-actions\\\&quot;\\u003e\\n      \\u003cform class=\\\&quot;new_device_rental\\\&quot; id=\\\&quot;new_device_rental\\\&quot; action=\\\&quot;/device_rentals\\\&quot; accept-charset=\\\&quot;UTF-8\\\&quot; data-remote=\\\&quot;true\\\&quot; method=\\\&quot;post\\\&quot;\\u003e\\u003cinput name=\\\&quot;utf8\\\&quot; type=\\\&quot;hidden\\\&quot; value=\\\&quot;\\u0026#x2713;\\\&quot; /\\u003e\\u003cinput type=\\\&quot;hidden\\\&quot; name=\\\&quot;authenticity_token\\\&quot; value=\\\&quot;aiu/5qq8UVfPSCTvq3+VRsnXxwJS9agJuPIZTH1HXd3Y+ocFG7IhgB99P1UnTKfrhusw/vcO6vhSMnreDiVOSg==\\\&quot; /\\u003e\\n        \\u003cinput type=\\\&quot;hidden\\\&quot; name=\\\&quot;device_id\\\&quot; id=\\\&quot;device_id\\\&quot; value=\\\&quot;3\\\&quot; /\\u003e\\n        \\u003cinput type=\\\&quot;hidden\\\&quot; name=\\\&quot;rental_id\\\&quot; id=\\\&quot;rental_id\\\&quot; value=\\\&quot;1\\\&quot; /\\u003e\\n        \\u003cbutton name=\\\&quot;button\\\&quot; type=\\\&quot;submit\\\&quot; class=\\\&quot;btn btn-primary\\\&quot;\\u003e\\n          \\u003cspan class=\\\&quot;glyphicon glyphicon-plus-sign\\\&quot;\\u003e\\u003c/span\\u003e\\n\\u003c/button\\u003e\\u003c/form\\u003e  \\u003c/td\\u003e\\n\\u003c/tr\\u003e\&quot;")).draw();

更新:我解决了这个问题,stackoverflow上的另一个问题指出这个错误可能是字符串编码的问题。通过调整我在那里找到的解决方案,我得出了以下结论:

var deviceTableRow = "";
deviceTableRow += "<%= escape_javascript render('devices/rental_devices_table_row', :device => @device) %>";
rentalDevicesList.row.add($(deviceTableRow)).draw();
var-deviceTableRow=“”;
deviceTableRow+=“@device)%>”;
rentalDeviceList.row.add($(deviceTableRow)).draw();

这有帮助吗
@Abhi没有,它仍然失败。我在问题中添加了JS响应中的行。
availableDevicesList.row.add($("\&quot;\\u003ctr id=\\\&quot;device-3\\\&quot;\\u003e\\n  \\u003ctd class=\\\&quot;device-id\\\&quot;\\u003e3\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-devicetype-name\\\&quot;\\u003eBlack Case\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-serial\\\&quot;\\u003eCASE0001\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-bought\\\&quot;\\u003e01.12.2015\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-remarks\\\&quot;\\u003eMaserati sticker\\u003c/td\\u003e\\n  \\u003ctd class=\\\&quot;device-actions\\\&quot;\\u003e\\n      \\u003cform class=\\\&quot;new_device_rental\\\&quot; id=\\\&quot;new_device_rental\\\&quot; action=\\\&quot;/device_rentals\\\&quot; accept-charset=\\\&quot;UTF-8\\\&quot; data-remote=\\\&quot;true\\\&quot; method=\\\&quot;post\\\&quot;\\u003e\\u003cinput name=\\\&quot;utf8\\\&quot; type=\\\&quot;hidden\\\&quot; value=\\\&quot;\\u0026#x2713;\\\&quot; /\\u003e\\u003cinput type=\\\&quot;hidden\\\&quot; name=\\\&quot;authenticity_token\\\&quot; value=\\\&quot;aiu/5qq8UVfPSCTvq3+VRsnXxwJS9agJuPIZTH1HXd3Y+ocFG7IhgB99P1UnTKfrhusw/vcO6vhSMnreDiVOSg==\\\&quot; /\\u003e\\n        \\u003cinput type=\\\&quot;hidden\\\&quot; name=\\\&quot;device_id\\\&quot; id=\\\&quot;device_id\\\&quot; value=\\\&quot;3\\\&quot; /\\u003e\\n        \\u003cinput type=\\\&quot;hidden\\\&quot; name=\\\&quot;rental_id\\\&quot; id=\\\&quot;rental_id\\\&quot; value=\\\&quot;1\\\&quot; /\\u003e\\n        \\u003cbutton name=\\\&quot;button\\\&quot; type=\\\&quot;submit\\\&quot; class=\\\&quot;btn btn-primary\\\&quot;\\u003e\\n          \\u003cspan class=\\\&quot;glyphicon glyphicon-plus-sign\\\&quot;\\u003e\\u003c/span\\u003e\\n\\u003c/button\\u003e\\u003c/form\\u003e  \\u003c/td\\u003e\\n\\u003c/tr\\u003e\&quot;")).draw();
var deviceTableRow = "";
deviceTableRow += "<%= escape_javascript render('devices/rental_devices_table_row', :device => @device) %>";
rentalDevicesList.row.add($(deviceTableRow)).draw();