Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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中将数据从循环传递到局部单击_Jquery_Ruby On Rails_Bootstrap Modal - Fatal编程技术网

Jquery 在Rails中将数据从循环传递到局部单击

Jquery 在Rails中将数据从循环传递到局部单击,jquery,ruby-on-rails,bootstrap-modal,Jquery,Ruby On Rails,Bootstrap Modal,我在category/1中有一个项目列表,这些项目以循环方式显示,我在页面底部有一个模式,使用 我正在尝试将数据传递到模式,单击下面的按钮时,该模式将弹出:- 模态本身:- <div class="modal fade" id="updateItemModal" tabindex="-1" role="dialog" aria-labelledby="updateItemModalLabel" aria-hidden="true"> <div class="modal-d

我在
category/1
中有一个项目列表,这些项目以循环方式显示,我在页面底部有一个模式,使用

我正在尝试将数据传递到模式,单击下面的按钮时,该模式将弹出:-

模态本身:-

<div class="modal fade" id="updateItemModal" tabindex="-1" role="dialog" aria-labelledby="updateItemModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="updateItemModalLabel">Change Item</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <!-- UPDATE TITLE HERE? -->
        <%= item.title??? %>
      </div>
    </div>
  </div>
</div>

修改项目
&时代;
因此,当在特定项目上单击编辑标题按钮时,我必须将正确的项目传递到我的
数据
标签中,并在模式中呈现来自该标题的内容。如果我的模态在循环之外,那么最好的方法是什么?我需要一些JS吗


另外,在我的控制器中,我可以访问大约有100个项目的
@category
,也就是说,我无法从控制器中获取特定项目,因为页面上有很多项目。

这里最简单的方法是使用ajax请求打开模式,并在js.erb文件的帮助下以编辑模式呈现表单,但这也需要一个请求-响应周期

渲染链接

<%= link_to 'Update Record', edit_item_path(item.id) %>
<div id='renderModal'></div>

然后创建edit.js.erb,在div'renderModal'中呈现模态部分

$('#renderModal').empty().append("<%= j render partial: 'item_edit_modal'%>")
$('#updateItemModal').modal()
$('#renderModal').empty().append(“”)
$('#updateItemModal').modal()
从开发人员的角度来看,这既简单又快速,但还有第二种方法

如果您想在用户体验方面以更快的方式完成,那么您应该使用api来处理这件事。
使用api时,您需要在按钮/链接、“数据id”或任何其他形式中保留对记录的引用,以便识别需要更新的记录。

例如,您可以将标题作为数据属性添加到按钮。时钟结束后,读出信息并将其添加到模式中。另一种方法是在单击按钮后发出API请求以获取此信息。