使用引导模式渲染编辑部分表单

时间:2017-04-06 09:43:22

标签: ruby-on-rails bootstrap-modal partials

我正在开发一个Ruby on Rails项目,它具有与dropbox类似的功能。我使用的宝石:

  
      
  1. carrierwave:上传文件
  2.   
  3. acts_as_tree:文件夹目录
  4.   
  5. slim:cleaner html
  6.   
  7. bootstrap 4
  8.   

我正在尝试合并呈现编辑表单的引导模式,以便用户能够编辑我模型中的file_name属性。

- @documents.each do |document|
  = link_to document.file.filename, document.file.url
  b = document.file_name
  = number_to_human_size(document.file.size, :precision => 2)
  = document.content_type
  = document.updated_at
  = link_to "Download", document.file.url
  #renameButton.button.btn.btn-primary data-toggle="modal" data-target="#renameModal" Rename
  #renameModal.modal.fade tabindex="=1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"
    .modal-dialog role="document"
      .modal-content
        .modal-header
          #exampleModalLabel.h5.modal-title Rename folder
          button.close data-dismiss="modal" aria-label="Close"
            span aria-hidden="true" ×
        .modal-body
          = form_for document do |f|
            = f.label :name
            = f.text_field :file_name
            = f.submit
        .modal-footer
          button.btn.btn-outline-success data-dismiss="modal" aria-hidden="true" Close
          button.btn.btn-outline-danger Save changes
  = link_to "Delete", document, :confirm => 'Are you sure?', :method => :delete

我遇到的问题是每当我点击任何一个"重命名"按钮,模态内的渲染编辑表单始终指向第一个文件条目而不是所选的文件条目。

我认为在我的do循环中有一个模态会导致这个问题。

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

问题可能是你使用相同的data-target进行重命名但是点击打开模型并且每个模态都有相同的ID

尝试对每个id使用迭代器

data-target="#renameModal#{index}"

以及您的模型ID应该是:

id: "#renameModal#{index}"

我不知道很多关于使用纤细的语法,所以请使用你的超薄语法。 这只是一个基本的Bootstrap概念。

希望这有助于......