Fix #4535: Comment edit forms contain duplicate IDs.

Prefix comment form IDs with `post_<id>_comment_<id>` to ensure
uniqueness.
This commit is contained in:
evazion
2020-06-26 14:57:19 -05:00
parent 5e23861bea
commit 804a2ef9a5
2 changed files with 8 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
<%= error_messages_for :comment %>
<%= edit_form_for(comment, html: { style: ("display: none;" if local_assigns[:hidden]), class: "edit_comment" }) do |f| %>
<%= edit_form_for(comment, namespace: "post_#{comment.post.id}_comment_#{comment.id || "new"}", html: { style: ("display: none;" if local_assigns[:hidden]), class: "edit_comment" }) do |f| %>
<% if comment.new_record? %>
<%= f.hidden_field :post_id %>
<% end %>

View File

@@ -73,7 +73,13 @@ SimpleForm.setup do |config|
# Defaults to :nested for bootstrap config.
# inline: input + label
# nested: label > input
config.boolean_style = :nested
#
# XXX We use inline instead of nested so that 1) the html structure for
# checkboxes is the same as the html structure of other input elements and 2)
# because if we use the `namespace` option to provide namespaced html IDs on
# a form with nested checkboxes, then SimpleForm generates incorrect IDs on
# the hidden checkbox inputs.
config.boolean_style = :inline
# Default class for buttons
config.button_class = 'btn'