'Creating a comment reply won't work while comment works Rails 7

I am trying to allow reply to comments and for some reason when I create a comment it works uneventfully but when I reply the "body" on params comes back empty. The weird part is that I am using the same form. Please take a look:

Note: I am using Action Text rich_text_area, if I use a simple text_area it works just fine.

models/comment.rb

class Comment < ApplicationRecord
  belongs_to :post
  belongs_to :user
  belongs_to :parent,   class_name: "Comment", optional: true
  has_many   :comments, class_name: "Comment", foreign_key: :parent_id

  has_rich_text :body
  validates_presence_of :body
end

routes.rb

resources :posts do
  resources :comments, only: [:create, :update, :destroy]
end

comments_controller.rb

def create
  @post = Post.find(params[:post_id])
  @comment = @post.comments.build(comment_params)
  @comment.user = current_user

  respond_to do |format|
    format.html do
      if @comment.save
        flash[:success] = "Comment was successfully created." 
      else
        flash[:danger] = @comment.errors.full_messages.to_sentence
      end
      redirect_to post_url(@post)
    end
  end
end

private

  def comment_params
    params.require(:comment).permit(:body, :parent_id)
  end

_comment.rb

// this works (creating a comment without parent)
= render "comments/form", post: @post, comment: @post.comments.build, submit_label: "Comment"


// this won't work (creating a comment with a parent being the current comment)
= render "comments/form", post: @post, comment: @post.comments.build, parent: comment, submit_label: "Reply"

- _form.rb

<%= form_with model: [post, comment], class: "form" do |f| %>
  <% if !parent.nil? %>
    <%= f.hidden_field :parent_id, value: parent.id %>
  <% end %>

  <div class="field">
    <%= f.rich_text_area :body, placeholder: "What do you think?" %>
  </div>
  <div class="actions">
    <%= f.submit submit_label, class: "btn btn-primary" %>
  </div>
<% end %>

What puzzles me the most is that the problem is that the body comes back empty. I cant't see the relation between the body and everything else.

Parameters: {"authenticity_token"=>"[FILTERED]", "comment"=>{"body"=>"", "parent_id"=>"14"}, "commit"=>"Reply", "post_id"=>"4"}

Thanks in advance!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source