Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

162
Vistas
Representación de Javascript [objeto Objeto] como tipo de datos de cadena

He estado tratando de resolver esto por un tiempo ahora. Aquí está mi clase JS:

 class Comment { constructor(comment) { this.id = comment.id this.comment = comment } static createComment(e){ e.preventDefault() const commentMessage = e.target.children[0].value const commentList = e.target.previousElementSibling Comment.submitComment(commentMessage, commentList) e.target.reset() } renderComment(commentList){ const p = document.createElement('p') p.dataset.id = this.id p.innerText = "- " + this.comment + " " } static submitComment(commentMessage, commentList){ fetch(commentsURL, { method: "POST", headers: { "Content-Type": "application/json", "Accept": "application/json", }, body: JSON.stringify({ comment: commentMessage }), }) .then(response => response.json()) .then(comment => { let newComment = new Comment(comment) newComment.renderComment(commentList) }) } }```

Lo que devuelve el siguiente error de mi API de Rails:

"NoMethodError (método no definido `permit' para "comentario":String):

app/controllers/comments_controller.rb:24:en comment_params' app/controllers/comments_controller.rb:8:in create'"

Y aquí está ese controlador:

 class CommentsController < ApplicationController def index comments = Comment.all render json: comments end def create comment = Comment.new(comment_params) if comment.save render json: comment else render json: {errors: comment.errors.full_messages} end end private def comment_params params.require(:comment).permit(:comment) end end

Cualquier ayuda es bienvenida e intentaré mantenerlo tan claro como sea necesario.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Parece que el controlador Ruby está intentando realizar una operación en la cadena de retorno que no es un método válido. ¿De dónde obtuviste el .permit() ? ¿Quizás preguntar en un foro de Ruby?

La razón por la que devuelve [objeto de objeto] es porque está esperando un objeto json en su solicitud de recuperación. Por lo general, solo representaría la cadena que se devuelve desde uno de los valores en el objeto json, pero en este caso es un objeto de error.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Publicas tus comentarios con esto:

 fetch(commentsURL, { method: "POST", headers: { "Content-Type": "application/json", "Accept": "application/json", }, body: JSON.stringify({ comment: commentMessage }), })

Eso significa que está enviando JSON como { "comment": "Comment text goes here..." } a Rails.

Luego, en Rails, intenta desempaquetar eso con esto:

 params.require(:comment).permit(:comment)

Eso dice "los parámetros deben tener un campo de comment y dentro de ese campo de comment busque el campo de comment ". Eso es buscar JSON así:

 { "comment": { "comment": "Comment text goes here.." } }

Así que cambie su JSON para que coincida con su análisis de parámetros:

 JSON.stringify({ comment: { comment: commentMessage } })

o cambie su análisis de parámetros para que coincida con su JSON:

 params.permit(:comment)
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda