在我的应用程序中,我有一个笔记的概念......在页面上,我用编辑按钮列出所有笔记。此编辑按钮打开一个用于编辑音符的模态。这一切都很有效,除了一个大问题。如果我有5个音符,当我单击第一个编辑按钮时,它会按预期编辑第一个音符...但是,如果我单击第二个编辑按钮,它还会编辑第二个音符的第一个音符INSTEAD。相同的第三个,等等。基本上无论我点击什么编辑按钮我总是编辑第一个音符。
用户控制器
def show
@user = User.find(params[:id])
@notes = @user.notes.order('created_at DESC')
end
索引页
<% @notes.each do |note| %>
<td><%= note.body %></td>
........
<td>
<%= button_tag text, class: "btn btn-primary", data: {toggle: "modal", target: "#edit_note"} %>
<%= render partial: "edit_note_modal", locals: { note: note } %>
</td>
<% end %>
注意模态
<div class="modal fade" id="edit_note" tabindex="-1" role="dialog" aria-labelledby="edit_note" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Edit Note</h4>
</div>
<div class="modal-body">
<%= form_for note do |f| %>
<div class="form-group">
<label for="keyword">Keyword</label>
<%= select_tag :keyword, options_for_select(<SOME FUNCTION>, selected: note.keyword ), class:"form-control" %>
</div>
<div class="form-group">
<label for="body">Body</label>
<%= text_area_tag :body, note.body , class:'form-control' %>
</div>
<div class="modal-footer">
<%= submit_tag "Update Note", class: "btn btn-primary" %>
</div>
<% end %>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
那是因为你使用相同的ID和ID应该是uniq所以当它在索引页面中搜索ID时,一旦它点击了第一个具有该ID edit_note
的Note,它就会打开它,你可以做什么每个视图具有不同的ID,如下所示:
索引页:
<%= button_tag text, class: "btn btn-primary", data: {toggle: "modal", target: "#edit_note_#{note.id}"} %>
注意模态:
<div class="modal fade" id="edit_note_#{note.id}" tabindex="-1" role="dialog" aria-labelledby="edit_note" aria-hidden="true">
注意ID现在是edit_note_#{note.id}
并且编辑按钮尝试打开具有相同目标的模型edit_note_#{note.id}