4
จะแทนที่ to_json ใน Rails ได้อย่างไร?
อัปเดต: ปัญหานี้ไม่ได้รับการสำรวจอย่างเหมาะสม render :jsonปัญหาที่แท้จริงอยู่ภายใน การวางโค้ดแรกในคำถามเดิมจะให้ผลลัพธ์ที่คาดหวัง อย่างไรก็ตามยังมีข้อแม้ ดูตัวอย่างนี้: render :json => current_user คือไม่ได้เช่นเดียวกับ render :json => current_user.to_json นั่นคือrender :jsonจะไม่เรียกใช้to_jsonเมธอดที่เกี่ยวข้องกับวัตถุ User โดยอัตโนมัติ ในความเป็นจริงหากto_jsonถูกแทนที่บนUserโมเดลrender :json => @userจะสร้างตามที่ArgumentErrorอธิบายไว้ด้านล่าง สรุป # works if User#to_json is not overridden render :json => current_user # If User#to_json is overridden, User requires explicit call render :json => current_user.to_json ทั้งหมดนี้ดูเหมือนโง่สำหรับฉัน …