ผมใช้คำสั่ง $ ruby script/generate scaffold table admin เมื่อกด Enter ได้ผลดังนี้ครับ
user@user-desktop:~/Desktop/project_ror/demo$ ruby script/generate scaffold table admin exists app/models/ exists app/controllers/ exists app/helpers/ exists app/views/tables exists app/views/layouts/ exists test/functional/ exists test/unit/ wrong number of arguments (1 for 2)
หาวิธีแก้ใน Google เยอะแล้วเหมือนกัน แก้ยังไม่ได้เลยครับ … แต่เหมือนจะมีคนเกิดปัญหาเหมือนผมเยอะมากๆ
พี่ๆ ช่วยแนะนำหน่อยครับ…
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
ผมเดาว่าที่สั่ง ruby script/generate scaffold table admin คือต้องการ generate สองตัวคือ table กับ admin หรือเปล่าครับ ถ้าต้องการแบบนั้นให้สั่งสองครั้ง
ruby script/generate scaffold tableruby script/generate scaffold adminถ้าต้องการ generate แค่ table ที่ชื่อ admin ให้ใช้แค่
ruby script/generate scaffold adminอาจจะเพราะใน rails 2 เราสามารถสั่ง scaffold แบบนี้ได้เลย
ruby script/generate scaffold admin name:string surname:string net:integerทำให้มันไม่สามารถตีความ argument ที่คุณ 0en42chart ใส่ให้มัน
ตั้งแต่ Rails2 ออก ก็จะมีคนเจอปัญหา arguments (1 for 2) กันเยอะ เนื่องจาก rails2 เปลี่ยนวิธีการใช้ scaffold คนที่ทำตาม tutorial เก่าก็เลยสะดุดกันเป็นแถบ
แต่ที่แย่ไปกว่านั้นคือ เวลามันทำออกมาแล้วไม่เหมือนเดิมน่ะครับ
เวลาจะ intro rails ให้ใคร เมื่อก่อนผมก็จะให้ generate scaffold แล้วก็ไปอ่าน/ไปแก้อ่ะครับ ตัวของใหม่ที่ generate ได้มันดันยุ่งยากเหลือเกิน…
สำหรับการสอนอาจจะยากขึ้นครับ แต่ผมว่าแบบนี้ทำให้ scaffold ใช้งานจริงได้มากขึ้นนะครับ
อ่า ก็จริงครับ…
ผมลองใช้คำสั่ง ruby script/generate scaffold admin name:string surname:string net:integer แล้วครับ
ระบบไม่แจ้งข้อผิดพลาด wrong number of arguments (1 for 2) ครับ
แต่พอผมชองทดสอบบนเว็บบราว์เซอร์ ระบบกลับแจ้งข้อผิดพลาดเป็น undefined method `scaffold’ for AdminController:Class ครับ
ใช้ rails เวอร์ชันอะไรน่ะครับ
ลองสั่ง
rails --versionดูได้เปล่าครับถ้าใช้ version 2.0.2 มันไม่น่าจะเรียกใช้เมท็อดนี้แล้วนะครับ
เห็นว่าติดตั้ง Rails ผ่านทาง Synaptic ผมว่ามันตี ๆ กับ Rails เก่าอยู่เปล่าครับ ผมเวลาติดตั้งผ่านทางนั้นแล้ว package มันจะมั่ว ๆ มาก กับ package ที่ติดตั้งจาก ruby gems
ใข้ version 2.0.2 ครับ ตอนนนี้กำลังหาทางเปลี่ยนเวอร์ชั่นอยู่ครับ
มีวิธีแนะนำไหมครับ
แก้ไฟล์ environment.rb บรรทัดนี้
ให้เป็น version ที่ต้องการครับ
ส่วนการ install version อื่นๆ ให้พิมพ์
เปลี่ยน 1.2.3 เป็น version ที่ต้องการครับ
ไม่ต้องห่วงว่าจะทำให้ใช้ version 2 ไม่ได้นะครับ เพราะการ gem ตัว gem มันจะเก็บไว้ทุก version เลยครับ ไม่มีลบ
พี่ครับผมลองใช้ gem install rails -v 1.2.3 แล้วครับ
ผมแจ้งข้อผิดพลาด /usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)